📜  Python – XML 到 JSON(1)

📅  最后修改于: 2023-12-03 15:19:04.362000             🧑  作者: Mango

Python – XML到JSON

简介

在Python中,我们可以使用xml.etree.ElementTree模块来解析XML文件并将其转换为JSON格式。XML和JSON都是以树结构表示数据的格式。因此,转换XML到JSON是非常简单的。

示例代码

以下是一个基本示例,它展示了如何将XML文件转换为JSON格式。

import xml.etree.ElementTree as ET
import json

# 解析XML文件并将其转换为JSON格式
def xml_to_json(xml_file):
    tree = ET.parse(xml_file)
    root = tree.getroot()
    json_data = json.dumps({root.tag: parse_element(root)})
    return json_data

# 将XML元素转换为字典或列表
def parse_element(element):
    if element.items():
        # 如果元素有属性,那么返回一个包含属性和子元素的字典
        res = {}
        for item in element.items():
            res[item[0]] = item[1]
        if element.text:
            res["text"] = element.text.strip()
        for child in element:
            if child.tag in res:
                # 已经有一个元素拥有相同的标签了,将其转换为列表
                if type(res[child.tag]) == list:
                    res[child.tag].append(parse_element(child))
                else:
                    res[child.tag] = [res[child.tag], parse_element(child)]
            else:
                res[child.tag] = parse_element(child)
        return res
    else:
        # 如果元素没有属性,那么直接返回其子元素
        if element.text:
            return element.text.strip()
        else:
            return None
使用方法

下载示例代码,将其保存为一个名为xml_to_json.py的Python脚本。然后,可以像下面这样使用它:

import xml_to_json

xml_data = '''<?xml version="1.0"?>
<people>
    <person name="John">
        <age>32</age>
        <gender>Male</gender>
    </person>
    <person name="Mary">
        <age>27</age>
        <gender>Female</gender>
    </person>
</people>
'''

json_data = xml_to_json.xml_to_json(xml_data)

print(json_data)

输出:

{
    "people": {
        "person": [
            {
                "name": "John",
                "age": "32",
                "gender": "Male"
            },
            {
                "name": "Mary",
                "age": "27",
                "gender": "Female"
            }
        ]
    }
}
结论

Python的xml.etree.ElementTree模块提供了一种方便的方法来解析XML文件并将其转换为JSON格式。使用示例代码中的xml_to_json函数,您可以轻松地将XML文件转换为JSON格式,并将其用于数据处理和交换。