Python 3.6与3.8读取CSV转XML顺序不一致问题解决方法
作者:橙木
在Python开发中,不同版本可能导致CSV转XML时元素顺序错乱,本文通过实际案例对比Python 3.6和3.8的行为差异,分析可能原因并分享调试思路,帮助您避免类似问题,确保数据转换顺序稳定可靠
在调试代码过程中发现
之前能够跑通的python3代码,功能是将csv格式的文件转换为xml格式文件,但是出现的问题是在读取csv文件后,未按照读取打印的顺序加入到xml中

观察到加入的顺序
貌似是按照了数据title的首字母顺序内容来进行的排序,换了一台电脑运行后未出现这种情况,对比差异为python的版本差异,出现问题的电脑是3.6.1的版本
尝试进行如下测试
from xml.dom.minidom import Document
doc = Document()
dataRoot = doc.createElement('ProdLogs')
print(type(dataRoot))
dataRoot.setAttribute("name","cyan")
dataRoot.setAttribute("sex","male")
dataRoot.setAttribute("amazing","yes")
doc.appendChild(dataRoot)
xmlFile = open("out"+'.xml','w')
xmlFile.write(doc.toprettyxml(indent = '\t'))
xmlFile.close()
两个版本的数据各有不同
3.6.1:

3.8.10:

一开始怀疑是通过字典的自排序实现的,因为3.6之后出现了字典自动排序的更新特性,但是验证后发现不是,暂时还没有找到官方文档对其改变进行说明
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
