作者:lizhonglin
github: /Leezhonglin/
blog: https://leezhonglin.github.io/
最近遇到一个问题需要使用python处理xml数据问题,我们平时的前后端交付都是使用的json
来处理.但是我们现在需要和C++
进行配合开发.C++
主要还是使用xml来处理数据.查询了发现python
有一个比较好用的库,专门来处理xml
和json
之间相互转换的.
安装命令
pip install xmltodict
我专门写了两个处理json
和xml
的函数如下
import jsonimport xmltodictb = """<?xml version="1.0" encoding="utf-8"?><user_info><id>12</id><name>Tom</name><age>12</age><height>160</height><score>100</score><variance>12</variance></user_info>"""# 定义xml转json的函数def xml_to_json(xml_str):# parse是的xml解析器xml_parse = xmltodict.parse(xml_str)# json库dumps()是将dict转化成json格式,loads()是将json转化成dict格式。# dumps()方法的ident=1,格式化jsonjson_str = json.dumps(xml_parse, indent=1)return json_stra = {"user_info": {"id": 12,"name": "Tom","age": 12,"height": 160,"score": 100,"variance": 12}}# json转xml函数def json_to_xml(json_str):# xmltodict库的unparse()json转xml# 参数pretty 是格式化xmlxml_str = xmltodict.unparse(json_str, pretty=1)return xml_strprint("---------------------------分割线----------------------------------")print(xml_to_json(b))print("---------------------------分割线----------------------------------")print(json_to_xml(a))print("---------------------------分割线----------------------------------")
运行后的效果如下
---------------------------分割线----------------------------------{"user_info": {"id": "12","name": "Tom","age": "12","height": "160","score": "100","variance": "12"}}---------------------------分割线----------------------------------<?xml version="1.0" encoding="utf-8"?><user_info><id>12</id><name>Tom</name><age>12</age><height>160</height><score>100</score><variance>12</variance></user_info>---------------------------分割线----------------------------------
原创作品,欢迎转载收藏…