news 2026/7/4 8:33:01

学习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/7/4 7:07:51

NotaGen最佳实践:生成高质量音乐的参数组合

NotaGen最佳实践:生成高质量音乐的参数组合 1. 引言 在AI音乐生成领域,如何通过合理配置模型参数与风格选项来稳定输出高质量、符合古典音乐规范的作品,是当前研究和应用中的关键挑战。NotaGen作为基于大语言模型(LLM&#xff0…

作者头像 李华
网站建设 2026/6/26 12:47:39

Next AI Draw.io:用AI绘图工具5分钟创建专业图表的完整指南

Next AI Draw.io:用AI绘图工具5分钟创建专业图表的完整指南 【免费下载链接】next-ai-draw-io 项目地址: https://gitcode.com/GitHub_Trending/ne/next-ai-draw-io 在传统图表绘制中,你是否曾为繁琐的手动操作而苦恼?从选择模板到调…

作者头像 李华
网站建设 2026/7/1 11:49:17

opencode国际化支持:多语言界面与文档生成方案

opencode国际化支持:多语言界面与文档生成方案 1. 引言 随着全球开发者对AI编程助手需求的不断增长,本地化与国际化能力已成为开源工具能否广泛落地的关键因素之一。OpenCode 作为2024年迅速崛起的终端优先 AI 编程助手框架,凭借其“任意模…

作者头像 李华
网站建设 2026/7/1 19:33:11

SweetAlert2终极指南:如何用现代化弹窗提升用户体验

SweetAlert2终极指南:如何用现代化弹窗提升用户体验 【免费下载链接】sweetalert2 项目地址: https://gitcode.com/gh_mirrors/swe/sweetalert2 SweetAlert2是一款革命性的JavaScript弹窗库,专为追求极致用户体验的现代Web应用而设计。作为传统浏…

作者头像 李华
网站建设 2026/6/28 22:53:41

InvenTree:企业级开源库存管理系统的智能化革命

InvenTree:企业级开源库存管理系统的智能化革命 【免费下载链接】InvenTree Open Source Inventory Management System 项目地址: https://gitcode.com/GitHub_Trending/in/InvenTree 在当今竞争激烈的商业环境中,高效的库存管理已成为企业运营的…

作者头像 李华
网站建设 2026/6/28 23:53:40

通义千问2.5-7B企业试用方案:零成本评估,按需扩容

通义千问2.5-7B企业试用方案:零成本评估,按需扩容 你是不是也遇到过这样的情况?公司想上AI大模型项目,CTO让你评估一下通义千问这类主流大模型的商用价值,但又不想一开始就投入几十万买GPU服务器、请专家团队部署。钱…

作者头像 李华