【发布时间】:2016-06-20 14:47:01
【问题描述】:
我有一个 XML,每个标签的属性如下:
<?xml version= "1.0" encoding="ISO-8859-1" ?>
<month xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="my.xsd">
<day Day="2016-1-01">
<hour Hour="00:00">
<Variables>
<a>211.3</a>
<b>78.94</b>
<c>0.6</c>
</Variables>
</hour>
<hour Hour="12:00">
<Variables>
<a>155.5</a>
<b>85.5</b>
<c>0.42</c>
</Variables>
</hour>
</day>
</month>
我希望解析 XML 并转换为字典,但不使用标签,使用属性值。
我的意思是,如何制作类似于:
>>> print d['2016-1-01']['12:00']['b']
>>> 85.5
真正的 XML 还有很多天和几个小时。这可能吗?
我能做的唯一解析它的方法是这个,但如果你想在不同的时间寻找几个不同的变量,这很困难:
# Day
for child_day in root:
print child_day.tag, child_day.attrib
# Hour
for child_hour in child_day:
print '\t', child_hour.tag, child_hour.attrib
# Variables
for child_Variables in child_hour:
print '\t\t', child_Variables.find('b').text
是否有任何类似于this answer 的函数使属性大小写与此相同而不是标签?
【问题讨论】:
标签: python xml dictionary elementtree