python实现xml转化为Json并进行写入

本文介绍了一个简单的Python脚本,用于将XML文件转换为JSON并写入新的文件。作者分享了如何将crazing_1.xml转换为res.json的过程,并表示将另寻方法实现批量转换。
摘要由CSDN通过智能技术生成

嗷嗷,网上找了个脚本参考,自己改成傻瓜模式的xml转化为json并进行写入。

import xmltodict
import json


# xml to json
def xmlToJson(xml_str):
    try:
        json_dict = xmltodict.parse(xml_str, encoding='utf-8')
        json_str = json.dumps(json_dict, indent=2)
        return json_str
    except:
        pass


# json to xml
def jsonToXml(json_str):
    try:
        json_dict = json.loads(json_str)
        xml_str = xmltodict.unparse(json_dict, encoding='utf-8')
    except:
        xml_str = xmltodict.umparse({'request': json_dict}, encoding='utf-8')
    finally:
        return xml_str


# load xml file
def load_json(xml_path):
    # 获取xml文件
    xml_file = open(xml_path, 'r')
    xml_str = xml_file.read()
    # 将读取的xml字符串转换为字典
    json_dict = xmltodict.parse(xml_str)
    # 将字典转换为json格式的字符串
    js
Python中,你可以通过使用标准库中的`json`模块来解析JSON文件,然后使用`xml.etree.ElementTree`模块来将解析得到的数据结构转换为XML格式。以下是一个简单的步骤说明,以及一个代码示例: 步骤说明: 1. 使用`json`模块的`json.load()`或`json.loads()`函数来加载JSON文件JSON字符串。 2. 构建一个与目标XML结构对应的Python对象(通常是树状结构)。 3. 使用`xml.etree.ElementTree`模块中的函数和类来创建XML元素并构建树状结构。 4. 将构建好的XML树输出为文件。 代码示例: ```python import json import xml.etree.ElementTree as ET # 假设有一个名为data.jsonJSON文件 with open('data.json', 'r') as json_file: data = json.load(json_file) # 创建根节点 root = ET.Element("root") # 遍历JSON数据并构建XML def build_xml(node, parent): if isinstance(node, dict): for tag, child in node.items(): subnode = ET.SubElement(parent, tag) build_xml(child, subnode) elif isinstance(node, list): for item in node: subnode = ET.SubElement(parent, 'item') build_xml(item, subnode) else: parent.text = str(node) # 开始构建XML build_xml(data, root) # 将XML写入文件 tree = ET.ElementTree(root) tree.write('output.xml', encoding='utf-8', xml_declaration=True) ``` 请注意,这个示例假设了JSON数据是一个嵌套的字典或列表结构,因此它适用于这种格式的转换。如果你的JSON结构更复杂,你可能需要调整构建XML的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值