在Python中递归细分OSM key到字典树(XML to JSON)的方法如下:
import xml.etree.ElementTree as ET
import json
def process_element(element):
result = {}
if len(element) == 0:
result[element.tag] = element.text
else:
result[element.tag] = {}
for child in element:
child_result = process_element(child)
if child.tag in result[element.tag]:
if isinstance(result[element.tag][child.tag], list):
result[element.tag][child.tag].append(child_result[child.tag])
else:
result[element.tag][child.tag] = [result[element.tag][child.tag], child_result[child.tag]]
else:
result[element.tag].update(child_result)
return result
tree = ET.parse('input.xml')
root = tree.getroot()
result = process_element(root)
json_result = json.dumps(result, indent=4)
完整代码示例:
import xml.etree.ElementTree as ET
import json
def process_element(element):
result = {}
if len(element) == 0:
result[element.tag] = element.text
else:
result[element.tag] = {}
for child in element:
child_result = process_element(child)
if child.tag in result[element.tag]:
if isinstance(result[element.tag][child.tag], list):
result[element.tag][child.tag].append(child_result[child.tag])
else:
result[element.tag][child.tag] = [result[element.tag][child.tag], child_result[child.tag]]
else:
result[element.tag].update(child_result)
return result
tree = ET.parse('input.xml')
root = tree.getroot()
result = process_element(root)
json_result = json.dumps(result, indent=4)
这段代码将递归地将XML文件转换为JSON格式。它首先导入所需的库,然后定义了一个递归函数process_element
,该函数用于处理XML元素。函数首先判断元素是否有子元素,如果没有则将其标签和文本内容存储在结果字典中;如果有子元素,则递归调用process_element
函数处理每个子元素,并将结果合并到结果字典中。最后,加载XML文件并解析,然后调用递归函数处理根元素,将结果转换为JSON格式并打印出来。
这个方法可以用于将包含层级结构的XML数据转换为JSON格式,方便在Python中进行处理和分析。在实际应用中,可以根据具体需求对代码进行适当的修改和优化。
推荐的腾讯云相关产品:无
领取专属 10元无门槛券
手把手带您无忧上云