转xml脚本
import xml.etree.ElementTree as ET
import json
def xml_to_dict(element):
"""将 XML 元素转换为字典"""
if len(element) == 0: # 如果没有子元素
return element.attrib # 返回属性字典
result = {element.tag: []}
for child in element:
child_dict = xml_to_dict(child)
result[element.tag].append(child_dict)
return result
# 解析 XML 文件
tree = ET.parse('data.xml') # 假设你的 XML 文件名为 data.xml
root = tree.getroot()
# 创建一个字典来存储 subject 中的 kk 元素
subject_dict = {}
for kk in root.find('subject').findall('kk'):
subject_dict[kk.attrib['name']] = {
'id': kk.attrib['id'],
'scores': {name.attrib['subject']: name.attrib['score'] for name in kk.findall('name')}
}
# 将 subject 中的内容合并到 person 中
for entity in root.find('person').findall('entity'):
name = entity.attrib['name']
if name in subject_dict:
entity.attrib.update(subject_dict[name]) # 将 subject 的内容作为属性添加到 entity
# 将合并后的 XML 转换为字典
data_dict = xml_to_dict(root)
# 将字典转换为 JSON
json_data = json.dumps(data_dict, indent=4, ensure_ascii=False)
# 将 JSON 数据写入文件
with open('data.json', 'w', encoding='utf-8') as json_file:
json_file.write(json_data)
print("XML 文件已成功转换为 JSON 文件。")
全栈爱好者,欢迎交流学习
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏