news 2026/9/20 8:37:59

学习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/9/13 9:08:09

操作指南:如何用万用表测试温度传感器好坏

一招断病灶:用万用表精准判断温度传感器是否“阵亡”你有没有遇到过这种情况?设备明明在运行,却显示“环境温度-40℃”,或者空调死活不制热,主板还不报错。排查半天,最后发现——罪魁祸首竟是一个几块钱的温…

作者头像 李华
网站建设 2026/9/7 7:45:04

从音乐理论到语音技术:Supertonic大模型镜像的极速设备端实践

从音乐理论到语音技术:Supertonic大模型镜像的极速设备端实践 1. 引言:当律学遇见语音合成 要理解现代文本转语音(TTS)系统为何追求“自然”与“高效”,不妨先回溯人类对声音本质的探索。正如《十二平均律曲集》所揭…

作者头像 李华
网站建设 2026/9/13 13:46:38

RexUniNLU vs TextCNN vs BERT实测对比:2小时搞定选型不花冤枉钱

RexUniNLU vs TextCNN vs BERT实测对比:2小时搞定选型不花冤枉钱 你是不是也遇到过这样的情况:老板让你快速评估几个AI模型,说下周就要定技术方案,但公司既没有GPU服务器,又不想花大价钱租用长期算力?作为…

作者头像 李华
网站建设 2026/9/11 15:49:57

如何用OpenCode终端AI编程助手提升开发效率:完整指南

如何用OpenCode终端AI编程助手提升开发效率:完整指南 【免费下载链接】opencode 一个专为终端打造的开源AI编程助手,模型灵活可选,可远程驱动。 项目地址: https://gitcode.com/GitHub_Trending/openc/opencode 在当今快节奏的开发环境…

作者头像 李华
网站建设 2026/9/2 15:47:48

FRCRN语音降噪应用指南:远程教育音频优化方案

FRCRN语音降噪应用指南:远程教育音频优化方案 在远程教育场景中,清晰的语音通信是保障教学质量和学习体验的核心要素。然而,受限于家庭环境、设备性能和网络条件,学生与教师常面临背景噪声干扰、回声、麦克风拾音质量差等问题。F…

作者头像 李华
网站建设 2026/9/10 0:45:53

新手教程:认识机箱前置USB 3.x接口排针定义

机箱前置USB 3.x排针接线全解析:从识别到实战,新手也能一次搞定 你有没有遇到过这种情况——新买的机箱装好后,前面板的蓝色USB口插上U盘,系统却只认成“高速设备”(也就是USB 2.0),传输速度卡…

作者头像 李华