我正在使用一个网站的API来获取信息。它输出100个值。
在此数组中搜索特定值的最佳实践是什么?
该数组如下所示:
{
"success":true,
"data":
{
"array":
[
{
"id":"1","name":"Value1"
},
{
"id":"2","name":"Value2"
}
]
}
}我尝试使用我在其他地方找到的这个代码片段来搜索数据,但是它不起作用:
for name in (r.json()['data']['array'][0]['name']):
if r.json()['data']['array'][0] == s_name:
ident = r.json()['data']['array'][0]['id']
name = r.json()['data']['array'][0]['name']
print (name + ' - ' + ident)
else:
print ('Nothing was found.')那么,如果我尝试引用Value1,我该如何使用Python来实现呢
请注意:我是一个新手开发人员,第一次使用Json,对Python不是很有经验。
非常感谢所有的帮助。
发布于 2016-06-30 14:26:22
不知道这段代码是从哪里来的,但它看起来非常错误。
从结构上看,你可以这样做:
for attrs in r.json()['data']['array']:
if attrs['name'] == s_name:
ident = attrs['id']
name = attrs['name']
print(name, '-', ident)
break
else:
print('Nothing found!')发布于 2016-06-30 14:25:37
你的代码可以简化很多:
# no need to call `r.json` so many times, can simply save it to a variable
json_data = r.json()
for item in json_data["data"]["array"]:
if item["name"] == "Value1":
# do something...发布于 2018-08-30 16:38:04
下面是一个用于搜索的一行示例:
aaa = {
"success":True,
"data":
{
"array":
[
{
"id":"1","name":"Value1"
},
{
"id":"2","name":"Value2"
}
]
}
}
[a['name'] for a in aaa['data']['array'] if a['id']=='1']这将返回所有找到的案例,如果没有找到,则返回一个空数组
https://stackoverflow.com/questions/38115290
复制相似问题