news 2026/4/18 3:40:53

学习python调用dmpython库获取达梦数据库模式信息的基本方式(续)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
学习python调用dmpython库获取达梦数据库模式信息的基本方式(续)

从本地加载之前保存的两个保存数据库表信息的json文件,将其中的数据还原回字典格式,然后取字典键的合集,依次循环查询键是否在两个字典中存在,如果都存在则比较两个字典中的元组是否相同,否则按新增或者移除数据处理,最后输出数据库表的变化信息,主要代码及运行效果如下所示:

importdmPythonimportjson tablebefore='tableinfo_old.json'tablebafter='tableinfo_new.json'withopen(tablebefore,'r',encoding='utf-8')asf:json_data=json.load(f)# 转换回字典tablebefore_data={key:tuple(value)forkey,valueinjson_data.get("data",{}).items()}withopen(tablebafter,'r',encoding='utf-8')asf:json_data=json.load(f)# 转换回字典tablebafter_data={key:tuple(value)forkey,valueinjson_data.get("data",{}).items()}changes=[]all_tables=set(tablebefore_data.keys())|set(tablebafter_data.keys())fortable_nameinall_tables:iftable_nameintablebefore_dataandtable_nameintablebafter_data:table1=tablebefore_data[table_name]table2=tablebafter_data[table_name]iftable1[0]!=table2[0]ortable1[1]!=table2[1]ortable1[2]!=table2[2]:changes.append({'table_name':table_name,'row_changed':table1[0]!=table2[0],'old_rows':table1[0],'new_rows':table2[0],'totalsize_changed':table1[1]!=table2[1],'old_size':table1[1],'new_size':table2[1],'usedsize_changed':table1[2]!=table2[2],'old_size':table1[2],'new_size':table2[2]})eliftable_nameintablebefore_data:# 表在第一个中有,第二个中没有changes.append({'table_name':table_name,'status':'removed','rows':tablebefore_data[table_name][0],'totalsize':tablebefore_data[table_name][1],'usedsize':tablebefore_data[table_name][2]})else:# 表在第二个中有,第一个中没有changes.append({'table_name':table_name,'status':'added','rows':tablebafter_data[table_name][0],'totalsize':tablebafter_data[table_name][1],'usedsize':tablebafter_data[table_name][2]})print(changes)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 12:14:03

KIMI AI免费API部署终极指南:从零到精通完整教程

KIMI AI免费API部署终极指南:从零到精通完整教程 【免费下载链接】kimi-free-api 🚀 KIMI AI 长文本大模型白嫖服务,支持高速流式输出、联网搜索、长文档解读、图像解析、多轮对话,零配置部署,多路token支持&#xff0…

作者头像 李华
网站建设 2026/3/31 7:29:52

ChatTTS-ui离线语音合成终极指南:断网环境也能轻松生成语音

ChatTTS-ui离线语音合成终极指南:断网环境也能轻松生成语音 【免费下载链接】ChatTTS-ui 匹配ChatTTS的web界面和api接口 项目地址: https://gitcode.com/GitHub_Trending/ch/ChatTTS-ui 在当今数字化时代,语音合成技术已经成为我们日常生活和工作…

作者头像 李华
网站建设 2026/4/17 18:20:19

CV-UNet Alpha通道解析:专业级抠图技术详解

CV-UNet Alpha通道解析:专业级抠图技术详解 1. 技术背景与核心价值 随着图像处理在电商、设计、影视等领域的广泛应用,精准高效的图像抠图(Image Matting) 成为关键需求。传统基于边缘检测或颜色阈值的抠图方法已难以满足复杂场…

作者头像 李华
网站建设 2026/4/18 0:59:30

haxm is not installed原因分析及系统学习路径推荐

从“haxm is not installed”说起:一次深入虚拟化底层的技术突围 你有没有在点击 Android Studio 的“Run”按钮后,眼睁睁看着模拟器卡在启动界面,控制台跳出一行冰冷提示: HAXM is not installed! 那一刻的心情,就…

作者头像 李华
网站建设 2026/4/18 0:54:24

OpenDataLab MinerU指南:法律文件关键日期提取

OpenDataLab MinerU指南:法律文件关键日期提取 1. 引言 在法律、金融和行政管理等领域,文档中关键信息的快速提取是提升工作效率的核心环节。其中,关键日期识别(如合同签署日、生效日、终止日等)往往决定了后续流程的…

作者头像 李华
网站建设 2026/4/16 9:27:34

WeChatFerry微信机器人:一键配置智能助手完整教程

WeChatFerry微信机器人:一键配置智能助手完整教程 【免费下载链接】WeChatFerry 微信逆向,微信机器人,可接入 ChatGPT、ChatGLM、讯飞星火、Tigerbot等大模型。Hook WeChat. 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatFerry…

作者头像 李华