【发布时间】:2022-06-13 22:40:07
【问题描述】:
我有一个包含许多条目的 .json 文件,如下所示:
{
"name": "abc",
"time": "20220607T190731.442",
"id": "123",
"relatedIds": [
{
"id": "456",
"source": "sourceA"
},
{
"id": "789",
"source": "sourceB"
}
],
}
我将每个条目保存在一个 python 对象中,但是,我只需要来自源 A 的相关 ID。问题是,来自源 A 的相关 ID 并不总是该嵌套列表中的第一位。
所以data['relatedIds'][0]['id'] 不能可靠地生成正确的 ID。
目前我正在解决这样的问题:
import json
with open("filepath", 'r') as file:
data = json.load(file)
for value in data['relatedIds']:
if(value['source'] == 'sourceA'):
id_from_a = value['id']
entry = Entry(data['name'], data['time'], data['id'], id_from_a)
我不认为这种方法是最佳解决方案,特别是如果相关 ID 列表变得更长并且附加到 JSON 文件的条目更多。
有没有一种更复杂的方法可以从指定的源中挑选出这个“id”值而不循环遍历该嵌套列表中的所有条目?
【问题讨论】:
-
相关的id排序了吗?在任何情况下,您都可以在找到它后添加
break语句
标签: python json for-loop nested-lists