【发布时间】:2021-05-13 10:29:20
【问题描述】:
我正在尝试遍历 JSON 文件以获取特定值,但是,这样做时循环打印了 3 次。我只希望该值打印一次并尝试打破循环,但它仍然没有奏效。
Python 代码:
with open(filename) as json_filez:
dataz = json.load(json_filez)
for i in dataz:
for i in dataz['killRelated']:
print(i["SteamID"])
break
我的 json 文件的 sn-p 是
{
"killRelated": [
{
"SteamID": "76561198283763531",
"kill": "15,302",
"shotacc": "16.1%"
}
],
"metaData": [
{
"test": "lol"
}
],
"miscData": [
{
"damageGiven": "2,262,638",
"gamePlayed": "1,292",
"moneyEarned": "50,787,000",
"score": "31,122",
"timePlayed": "22d 11h 56m"
}
]
}
这是我的输出:
76561198283763531
76561198283763531
76561198283763531
预期输出:
76561198283763531
【问题讨论】:
-
Remove for i in dataz['killRelated']: 并将 print 更改为 print(dataz['killRelated']["SteamID"])。同时删除中断。
-
@user 那行不通。
-
你认为它应该打印多少次?为什么?用你自己的话来说,你在哪里有
for i in dataz:,这样做的目的是什么?您希望外部循环运行多少次?为什么?在您拥有for i in dataz['killRelated']:的地方,您希望每次外循环迭代 运行多少次?为什么?那么你期望总共有多少输出呢?为什么? -
那里有多余的循环。你可能只想要
for i in dataz['killRelated']: print(i['SteamID'])。 -
“循环遍历整个 JSON 文件”是问题所在。无论“整个 JSON 文件”中存在多少项目,您都在循环通过
killRelated... 没有理由需要多次循环通过killRelated...
标签: python python-3.x for-loop