Python中xmltodict对xml的操作

xmltodict是另一个简易的库,它致力于将XML变得像JSON.

下面是一个简单的示例XML文件:

<?xml version="1.0"?>
<mydocument has="an attribute">
    <and>
        <many>elements</many>
        <many>more elements</many>
    </and>
    <plus a="complex">
        element as well
    </plus>
</mydocument>

这是第三方包,在处理前先用pip来安装

pip install xmltodict

可以像下面这样访问里面的元素,属性及值:

import xmltodict

with open("test.xml") as fd:          # 将XML文件装载到dict里面
    doc = xmltodict.parse(fd.read())
    print(doc["mydocument"]["@has"])  # an attribute
    print(doc["mydocument"]["and"])   # OrderedDict([(u'many', [u'elements', u'more elements'])])
    print(doc["mydocument"]["and"]["many"])   # [u'elements', u'more elements']
    print(doc["mydocument"]["plus"]["@a"])    # complex
    print(doc["mydocument"]["plus"]["#text"]) # element as well

xmltodict 也有unparse函数让您可以转回XML。

该函数有一个streaming模式适合用来 处理不能放入内存的文件,它还支持命名空间

Python可以使用xmltodict库来操作XML文件。该库提供了将XML文件解析为Python字典对象的功能,以及将Python字典对象转换为XML文件的功能。你可以使用xmltodict的parse()函数将XML字符串解析为Python字典对象,然后使用json库的dumps()函数将Python字典对象转换为JSON字符串。同样地,你也可以使用xmltodict的unparse()函数将Python字典对象转换为XML字符串。下面是一个示例代码: ```python import xmltodict import json def json_to_xml(python_dict): """将JSON转换为XML""" xml_str = xmltodict.unparse(python_dict) return xml_str def xml_to_json(xml_str): """将XML转换为JSON""" xml_parse = xmltodict.parse(xml_str) json_str = json.dumps(xml_parse, indent=1) return json_str # 读取JSON文件并转换为XML文件 JSON_PATH = './test.json' with open(JSON_PATH, 'r') as f: json_file = f.read() python_dict = json.loads(json_file) with open(JSON_PATH\[:-4\] + 'xml', 'w') as newfile: newfile.write(json_to_xml(python_dict)) # 读取XML文件并转换为JSON文件 XML_PATH = './1.xml' with open(XML_PATH, 'r') as f: xml_file = f.read() with open(XML_PATH\[:-3\] + 'json', 'w') as newfile: newfile.write(xml_to_json(xml_file)) ``` 以上代码演示了如何将JSON文件转换为XML文件和将XML文件转换为JSON文件。你可以根据自己的需求进行相应的操作。希望对你有帮助!\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* *3* [一起来分析Python怎么操作XML文件](https://blog.csdn.net/wboy_/article/details/124663368)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值