gpt4 book ai didi

python - 使用 Python 显示 XML 数据

转载 作者:太空宇宙 更新时间:2023-11-03 20:55:16 25 4
gpt4 key购买 nike

尝试创建一个 Python 脚本来显示复杂 XML 文件中每 5-7 秒更改一次的数据。下面是我正在使用的示例 XML 文件...

<bsgame source="TAS Baseball/Softball" version="5.17.00" 
generated="4/9/2019">
<venue gameid="SB0409-1"
visid="IUP-S" homeid="JOHN" visname="Indiana (PA)"
homename="Seton Hill"
date="4/9/2019" location="Greensburg, PA"
stadium="" duration="" attend="0"
leaguegame="N" start="3:00 PM" dhgame="1"
schedinn="7"
weather="sunny and warm">
<umpires></umpires>
<notes>
<note text="Weather: sunny and warm"></note>
<note text="Game: livegame"></note>
</notes>
<rules batters="9,9" usedh="Y"></rules>
</venue>
<team vh="V" id="IUP-S" name="Indiana (PA)" code="IUP-S">
<linescore line="0,0,0,0,1,1,3" runs="5" hits="9"
errs="2" lob="7">
<lineinn inn="1" score="0"></lineinn>
<lineinn inn="2" score="0"></lineinn>
<lineinn inn="3" score="0"></lineinn>
<lineinn inn="4" score="0"></lineinn>
<lineinn inn="5" score="1"></lineinn>
<lineinn inn="6" score="1"></lineinn>
<lineinn inn="7" score="3"></lineinn>
</linescore>
<team vh="H" id="SHU-S" name="Seton Hill" code="SHU-S">
<linescore line="0,0,0,0,0,1,X" runs="1" hits="4"
errs="2" lob="3">
<lineinn inn="1" score="0"></lineinn>
<lineinn inn="2" score="0"></lineinn>
<lineinn inn="3" score="0"></lineinn>
<lineinn inn="4" score="0"></lineinn>
<lineinn inn="5" score="0"></lineinn>
<lineinn inn="6" score="1"></lineinn>
<lineinn inn="7" score=""></lineinn>
</linescore>

我注意到 StretchInternet 等服务将 XML 转换为 Json 以便显示数据。我已经弄清楚如何在 Python 中使用 xmltodict 将 XML 转换为 Json。

 import json
import xmltodict

with open("/Volumes/GoogleDrive/My Drive/LIVE/XMLs/SB_Demo.xml", 'r') as f:
xmlString = f.read()

jsonString = json.dumps(xmltodict.parse(xmlString), indent=4)

print("\nJSON output(output.json):")
print(jsonString)

with open("output.json", 'w') as f:
f.write(jsonString)

我不知道从这里该去哪里。最终,我希望能够在视频广播中显示两个“团队”的总跑动次数 (@runs)。但是,我是一个按部就类的人。步骤 1...如何使用 xmltodict 解析此 XML 并仅显示两个“团队”的 @runs?

最佳答案

对于初学者,您应该与报价用法保持一致(使用“或')

此外,您的 xml 缺少 </team>每个 <linescore> 之后的结束标记

至于你的问题 - 你正在将 xml 字典转换为带有 json.dumps 的 JSON 字符串。 ,这对你正在尝试的事情没有用。将 xmltodict 对象作为 Python 字典访问

with open("YOUR_XML_FILE.xml", 'r') as f:
xmlString = f.read()

xmlDict = xmltodict.parse(xmlString)

for team in xmlDict['bsgame']['team']:
print(team['@name'], 'Runs :')
print(team['linescore']['@runs'])

结果

Indiana (PA) Runs :
5
Seton Hill Runs :
1

关于python - 使用 Python 显示 XML 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56062477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com