python怎么xml的代码,python实现xml转json文件的示例代码_Python

python实现xml转json文件的示例代码

2021-08-19 00:48撒欢 Python

这篇文章主要介绍了python实现xml转json文件的示例代码,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下

使用了Python的 xml.etree.ElementTree 库

xml.etree.ElementTree 库简介

xml.etree.ElementTree模块实现了一个简单而高效的API用于解析和创建XML数据。xml.etree.ElementTree模块对于恶意构造的数据是不安全的。如果您需要解析不受信任或未经验证的数据,请参阅XML漏洞。参考文献:https://docs.python.org/3.6/library/xml.etree.elementtree.html

?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899from xml.etree import ElementTreeimport json LISTTYPE = 1DICTTYPE = 0 def getDictResults(res_dicts, iters):  result_dicts = {}  for iter in iters.getchildren():    iterxml(iter, result_dicts)   if result_dicts:    res_dicts[iters.tag].update(result_dicts) def getListResults(res_dicts, iters):  result_lists = []  for iter in iters.getchildren():    result_dicts = {}    iterxml(iter, result_dicts)    result_lists.append(result_dicts.copy())    del(result_dicts)    if result_lists:    if len(res_dicts[iters.tag].items()) == 0:      res_dicts[iters.tag] = result_lists.copy()    else:      for resobj in result_lists:        resobjkey = list(resobj.keys())[0]        if res_dicts[iters.tag].get(resobjkey) == None:          res_dicts[iters.tag].update(resobj)        else:          if type(res_dicts[iters.tag][resobjkey]) == list:            res_dicts[iters.tag][resobjkey].append(resobj[resobjkey].copy())          else:            old_value = res_dicts[iters.tag][resobjkey]            res_dicts[iters.tag][resobjkey] = []            res_dicts[iters.tag][resobjkey].append(old_value)            res_dicts[iters.tag][resobjkey].append(resobj[resobjkey].copy())     del(result_lists) def checkxmlchildrentype(iters):  taglist = []  for iter in iters.getchildren():    taglist.append(iter.tag)   if len(set(taglist)) == len(taglist):    return DICTTYPE  else:    return LISTTYPE def getResults(res_dicts, iters):  if checkxmlchildrentype(iters):    return getListResults(res_dicts, iters)  else:    return getDictResults(res_dicts, iters) #@res_dicts  {}def iterxml(iter, res_dicts):  res_dicts[iter.tag] = {}   if iter.attrib:    for k,v in dict(iter.attrib).items():      res_dicts[iter.tag].update({k : v})    if iter.text is not None and iter.text.strip() != "":    res_dicts[iter.tag].update({"__XmlTagText__" : iter.text.strip()})    if iter.getchildren():    getResults(res_dicts, iter) def parserxmltojson(file_path):  try:    tree = ElementTree.parse(file_path)  except Exception as e:    #multi-byte encodings are not supported  把字符集改成utf-8就可以    #encoding specified in XML declaration is incorrect  xml encoding标识和文件的字符集不同    #syntax error  语法错误,乱码等    #not well-formed (invalid token)  编辑器点击后字符集被修改成ASCII等,或者文件本身字符集和xml encoding不相同    print("Parser {} Error, Errmsg: {}".format(file_path, e))    return ""   if tree is None:    print("{} is None.".format(file_path))    return ""   root = tree.getroot()   report = {}  iterxml(root, report)  #return getDictResults(root)   return report if __name__ == "__main__":  jsonret = parserxmltojson("test.xml")  with open("test.json", "w", encoding="utf-8") as fd:    fd.write(json.dumps(jsonret, ensure_ascii=False, indent=4))  print(json.dumps(jsonret, ensure_ascii=False, indent=4))

以上就是python实现xml转json文件的示例代码的详细内容,更多关于python实现xml转json文件的资料请关注服务器之家其它相关文章!

原文链接:https://www.cnblogs.com/frisk/p/12634427.html

python 批量修改制定xml - CSDN如何在Python中深度复制xml子元素 - python代码 - 源码查python里面使用BS4爬取的页面代码里面有部分XML数据如何 ...Darknet训练 xml标注文件转换txt标注文件并自动化分数据集 ...XML CDATA - w3school深度学习目标检测提取xml文件中的目标坐标_pythonxml文件 ...Python爬虫利器二之Beautiful Soup的用法 | 静觅Python 语法Python导入模块,Python import用法(超级详细)Python根据指定文件生成XML的方法Python xml ElementTree 缩进(autoindent) 换行python操作xml文件详细介绍python脚本用于xml解析的源代码深度!Python 解析 XML 数据的正确姿势python:json转xmlpython xml提取多重标签内容python读取xml文件PythonXML读取和处理python画图完整代码-python绘图代码Python XML解析之DOMDarknet训练 xml标注文件转换txt标注文件并自动化分数据集python代码python简单绘图代码-python绘图代码python 批量修改 labelImg 生成的xml文件的方法Python解析xml字符串python简单代码示例-python3简单代码示例bpmn-python:用于创建Python库的项目,该库允许导入导出BPMN图(作为XML文件)并提供简单的可视化功能-源码Python解析xml文件并修改后保存 demopython代码案例详解-Python代码样例列表python XML文档解析--ElementTree遍历xml文档以及根据配置修改属性值TXT转XML代码python实现)Python解析xml文件: ElementTree解析xml换行和缩进美化问题如何批量修改.xml文件里的path值:python实现Python人脸识别黑科技(一):50行代码运用Python+OpenCV实现人脸追踪+详细教程+快速入门+图像识Python中使用dom模块生成XML文件示例vat:有用的Python增值税代码-源码Python 解析XML文件python获取xml中的数据Python解析xml文件: ElementTree解析xml节点属性排序问题
2018四级英语作文答案2018年12月四级作文题目菟丝子的食用方法有哪些下一站2012年AGOI剧组制作微电影gtpase超家族包括什么rho蛋白作用银行开门红发言第一个字是福的成语启示录2玛雅文明云盘启示录电影玛雅全集徐徐图之全部作品集徐徐图之作者在哪里找DNF100版本极诣流浪武士怎么附魔刃牙道第95话第665章爱国与维度之剑的初级形态从不良人开始复制诸天第266章265章感觉在学校没有好朋友大学没交到朋友赵喜娜为什么会中文wwe杰夫哈迪回归完整版第108章这个女装第一次怕不是要被破了第736章他是我的人你碰一下试试