需要使用python将xml中的数据转换为json

问题描述 投票:0回答:1

我需要将 xml 数据转换为 json 格式。 我使用 django 作为后端,我不太习惯从 xml 解析数据,所以我考虑将数据转换为 json 然后解析它。
xml数据格式如下图:

<?xml version='1.0' encoding='ASCII'?>
<add>
...
 <doc>
  <field name="id">1</field>
  <field name="title1">subtitle1</field>
  <field name="title2">subtitle2</field>
 </doc>
...
</add>

我需要使用python将格式转换为json。

另外,如果有更好的方法,请告诉我。

我尝试使用在线转换器进行转换,但 json 数据不准确。我得到了值,但没有得到键,并且一些转换器抛出错误。

python json django xml backend
1个回答
1
投票

您需要使用 xmltodict 包

pip install xmltodict

然后您可以将 XML 解析为 JSON,如下所示:

import xmltodict
import json

xml_data = """
<?xml version='1.0' encoding='ASCII'?>
<add>
 <doc>
  <field name="id">1</field>
  <field name="title1">subtitle1</field>
  <field name="title2">subtitle2</field>
 </doc>
</add>
""".strip()

dict_data = xmltodict.parse(xml_data)
json_data = json.dumps(dict_data, indent=4)
print(json_data)

输出:

{
    "add": {
        "doc": {
            "field": [
                {
                    "@name": "id",
                    "#text": "1"
                },
                {
                    "@name": "title1",
                    "#text": "subtitle1"
                },
                {
                    "@name": "title2",
                    "#text": "subtitle2"
                }
            ]
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.