python解析xml文件转换成json
时间: 2024-07-21 17:01:06 浏览: 85
python解析含有重复key的json方法
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格式的数据结构,然后你可以选择保存到文件或者直接操作。
阅读全文