<p>您当前的实施中出现了几个问题:</p>
<ul>
<li>您的XML包含一个默认名称空间<code>xmlns="http://tempuri.org/"</code>,它要求您定义一个前缀以解析节点内容<code>findall</code>维护一个<em>名称空间</em>参数</李>
<li>路径表达式假定<code>Value</code>是root的子级。您需要使用双斜杠路径<code>.//</code>,因为<code>Value</code>是root的后代</李>
<li>您需要提取迭代器变量的<code>text</code>。否则,您将返回<code><Element ... ></code>对象,这在最终使用需求中通常不有用</李>
</ul>
<考虑调整</p>
<pre class="lang-py prettyprint-override"><code>tree = ET.fromstring(data)
nmsp = {'doc': 'http://tempuri.org/'} # NAMESPACE PREFIX ASSIGNMENT
results = tree.findall('.//doc:Value', namespaces = nmsp) # NAMESPACE PREFIX USE WITH './/' PATH
for i in results:
print(i.text) # RETRIEVE TEXT VALUE
# 28671555
# 28675970
# 28680249
# 28684224
</code></pre>
<p>更好的是,返回一个包含<code>.Value</code>及其同级的字典(其中<code>split</code>删除dict键中的默认名称空间):</p>
<pre class="lang-py prettyprint-override"><code>data_list_of_dicts = [{i.tag.split('}')[-1]: i.text for i in hd}
for hd in tree.findall('.//doc:vwHistoryDetail', namespaces = nmsp)]
print(data_list_of_dicts)
# [{'idVariable': '2561', 'DateTime': '2020-12-01T00:00:00', 'idPeriodType': '1', 'Value': '28671555', 'ValueDetail': '4415'},
# {'idVariable': '2561', 'DateTime': '2020-12-02T00:00:00', 'idPeriodType': '1', 'Value': '28675970', 'ValueDetail': '4279'},
# {'idVariable': '2561', 'DateTime': '2020-12-03T00:00:00', 'idPeriodType': '1', 'Value': '28680249', 'ValueDetail': '3975'},
# {'idVariable': '2561', 'DateTime': '2020-12-04T00:00:00', 'idPeriodType': '1', 'Value': '28684224', 'ValueDetail': '4236'}]
</code></pre>
<p>对于时间键控值字典:</p>
<pre class="lang-py prettyprint-override"><code>time_value_dict = {hd.find('doc:DateTime', namespaces=nmsp).text:
hd.find('doc:Value', namespaces=nmsp).text
for hd in tree.findall('.//doc:vwHistoryDetail', namespaces=nmsp)}
print(time_value_dict)
# {'2020-12-01T00:00:00': '28671555',
# '2020-12-02T00:00:00': '28675970',
# '2020-12-03T00:00:00': '28680249',
# '2020-12-04T00:00:00': '28684224'}
</code></pre>
<p><kbd><a href="https://rextester.com/OQXJW96665" rel="nofollow noreferrer"><strong>Online Demo</strong></a></kbd></p>