我正在尝试从大型XML输出中提取一些数据,有人可以帮我提取TotalMilliseconds
99%的数据。
我正在尝试使用ElementTree
解析器在Python中执行此操作。
我当前正在尝试执行类似的操作,以找到第99个百分位数,然后尝试TotalMilliseconds
从该级别的根目录中查找。
但这什么也没返回,在调试中我可以看到它进入了99子句,但是我迷失了从那里去的地方。
for item in root.findall('./TimeSpan/Latency/Bucket/Percentile'):
if item.text == "99":
totalMs = item.find('TotalMilliseconds').text
print(totalMs)
<TimeSpan>
<Latency>
<Bucket>
<Percentile>96</Percentile>
<ReadMilliseconds>55.378</ReadMilliseconds>
<WriteMilliseconds>105.115</WriteMilliseconds>
<TotalMilliseconds>98.546</TotalMilliseconds>
</Bucket>
<Bucket>
<Percentile>97</Percentile>
<ReadMilliseconds>59.552</ReadMilliseconds>
<WriteMilliseconds>109.733</WriteMilliseconds>
<TotalMilliseconds>104.649</TotalMilliseconds>
</Bucket>
<Bucket>
<Percentile>98</Percentile>
<ReadMilliseconds>64.891</ReadMilliseconds>
<WriteMilliseconds>116.998</WriteMilliseconds>
<TotalMilliseconds>111.300</TotalMilliseconds>
</Bucket>
<Bucket>
<Percentile>99</Percentile>
<ReadMilliseconds>81.629</ReadMilliseconds>
<WriteMilliseconds>131.931</WriteMilliseconds>
<TotalMilliseconds>125.176</TotalMilliseconds>
</Bucket>
</Latency>
</TimeSpan>
与其搜索和遍历Percentile
元素,不如遍历Bucket
元素。然后,对于每个Bucket
,找到并进行比较,然后Percentile
按照您已经进行的步骤进行操作:
import xml.etree.ElementTree as ET
xml = """
YOUR XML
"""
tree = ET.fromstring(xml)
for item in tree.findall(".//Bucket"):
if item.find("Percentile").text == "99":
totalMs = item.find("TotalMilliseconds").text
print(totalMs)
输出:
125.176
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句