python解析xml文件为json文件(xmltodict模块解析)

实现功能: 将XML_PATH文件路径下的xml文件转换为json文件并以xml.json文件保存在同一目录下

参考自https://blog.csdn.net/qq_33196814/article/details/99992771 

import json
import xmltodict


XML_PATH = '/home/ly/Desktop/xmlfile/xml.xml' #xml文件的路径

'''json to xml'''
def json_to_xml(json_str):
    # xmltodict库的unparse()json转xml
    # 参数pretty 是格式化xml
    xml_str = xmltodict.unparse(json_str, pretty=1, root='shapes')
    return xml_str

'''xml to json'''
def xml_to_json(xml_str):
    # parse是的xml解析器
    xml_parse = xmltodict.parse(xml_str)
    # json库dumps()是将dict转化成json格式,loads()是将json转化成dict格式。
    # dumps()方法的ident=1,格式化json
    json_str = json.dumps(xml_parse, indent=1)
    return json_str

with open(XML_PATH, 'r') as f1:
    xmlfile = f1.read()
    print('---------xml文件-----------')
    print(xmlfile)
    print('---------json文件----------')
    print(xml_to_json(xmlfile))
with open(XML_PATH[:-3]+'json','w') as newfile:
    newfile.write(xml_to_json(xmlfile))
    print('--------写入json文件--------')
    print('写入xml.json文件成功')

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中有多种库可以用来解析XML文件并将其转换为JSON格式,其中最常用的是`xml.etree.ElementTree`库和`dicttojson`或者`python-dotenv`库结合`json`库。 1. 使用`xml.etree.ElementTree`库: ```python import json import xml.etree.ElementTree as ET def xml_to_dict(element): if len(element) == 0: return element.text result = {} for child in element: child_data = xml_to_dict(child) if child.tag in result: if type(result[child.tag]) is list: result[child.tag].append(child_data) else: result[child.tag] = [result[child.tag], child_data] else: result[child.tag] = child_data return result def xml_to_json(xml_file_path, json_file_path): tree = ET.parse(xml_file_path) root = tree.getroot() data = xml_to_dict(root) with open(json_file_path, 'w') as f: json.dump(data, f, indent=4) # 示例 xml_to_json('your_xml_file.xml', 'output.json') ``` 2. 使用`dicttojson`库: ```python from dicttojson import dicttojson def parse_xml_to_json(xml_content): # 首先需要将XML字符串转换为ElementTree对象 from xml.dom.minidom import parseString dom = parseString(xml_content) root = dom.documentElement return dicttojson(root) # 示例 with open('your_xml_file.xml', 'r') as f: xml_string = f.read() json_output = parse_xml_to_json(xml_string) print(json.dumps(json_output, indent=4)) ``` 注意替换`'your_xml_file.xml'`为你的实际XML文件路径。执行后,你会得到一个JSON格式的数据结构,然后你可以选择保存到文件或者直接操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值