python中xml和json数据相互转换

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

安装命令

pip install xmltodict
1
我专门写了两个处理json和xml的函数如下

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>
---------------------------分割线----------------------------------

 

搜索