python中xml和json数据相互转换

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_33196814/article/details/99992771

作者:lizhonglin
github: https://github.com/Leezhonglin/
blog: https://leezhonglin.github.io/

最近遇到一个问题需要使用python处理xml数据问题,我们平时的前后端交付都是使用的json来处理.但是我们现在需要和C++进行配合开发.C++主要还是使用xml来处理数据.查询了发现python有一个比较好用的库,专门来处理xmljson之间相互转换的.

安装命令

pip install xmltodict

我专门写了两个处理jsonxml的函数如下

import json
import xmltodict

b = """<?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,格式化json
    json_str = json.dumps(xml_parse, indent=1)
    return json_str


a = {
    "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 是格式化xml
    xml_str = xmltodict.unparse(json_str, pretty=1)
    return xml_str


print("---------------------------分割线----------------------------------")
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>
---------------------------分割线----------------------------------

原创作品,欢迎转载收藏…

猜你喜欢

转载自blog.csdn.net/qq_33196814/article/details/99992771