在 Python 中将 XML 转换为 JSON

在本教程中,我们将研究在 Python 中将 XML 转换为 JSON 的方法。JSON 格式比 XML 格式更易于读写。其紧凑的样式和轻巧的特性也提高了系统性能,尤其是在 RESTful API 中。由于 JSON 在许多方面都比 XML 更好,因此它在许多领域中被用作 XML 的替代品。

现在,假设我们已将数据保存为 XML 格式,并且希望将其转换为 JSON 格式;我们可以使用以下方法在 Python 中将 XML 数据转换为 JSON。

在 Python 中使用 xmltodict 模块将 XML 转换为 JSON

在 Python 中,我们拥有 json.dumps(obj) 方法,该方法将数据作为 obj 参数,并将其序列化为 JSON 格式的流,然后将格式化的数据作为输出返回。

obj 参数可以是字典,字符串,列表或元组等,json.dumps() 方法将根据其数据类型转换 obj。就像我们需要 JSON 对象一样,我们将必须以字典形式提供输入,因为 json.dumps() 方法会将字典转换为 JSON 对象。列表或元组类型将转换为 JSON 数组,字符串类型将转换为 JSON 字符串。

我们可以使用 xmltodict.parse() 方法将 XML 数据转换为 Python 字典数据类型。xmltodict.parse() 方法将 XML 格式的数据作为字符串,解析数据,然后将输出作为字典返回。

使用 xmltodict.parse() 方法将数据转换为字典后,我们可以使用 json.dumps() 方法将数据转换为 JSON 对象。

以下示例代码演示了如何在 Python 中使用 json.dumps() 和 xmltodict.parse() 方法将 XML 数据转换为 JSON。

import xmltodict
import json

dictionary = xmltodict.parse("""<note>
  <date>2021-03-07</date>
  <time>15:23</time>
  <to>Sara</to>
  <from>Khan</from>
  <msg>Let's meet this weekend!</msg>
</note>""")
json_object = json.dumps(dictionary) 
print(json_object)

输出:

{"note": {"date": "2021-03-07", "time": "15:23", "to": "Sara", "from": "Khan", "msg": "Let's meet this weekend!"}}