我正在使用网站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
没有经验。
非常感谢所有帮助。
答案 0 :(得分:4)
您的代码可以简化很多:
import random
import time
b=time.time()
a=list()
c=list()
n=random.randint(2,12)
#appending random numbers in a list 'a'
g=1
while(g<=n):
a.append(random.randint(0,10))
g=g+1
print(a)
print("Total elements in the list= %s"%len(a))
#Appending Done
for i in range(2,n):
for j in range (2,n):
if a[i]*a[j]>0:
if a[i]!=a[j]:
m=a[i]*a[j]
c.append(m)
else:
continue
else:
continue
print(max(c))
time=time.time()-b
print("%s"%(time.time()-b))
答案 1 :(得分:4)
不确定那段代码来自哪里,但看起来非常错误。
只需查看结构,您就可以执行以下操作:
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!')
答案 2 :(得分:1)
这里是一个单线搜索示例:
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']
这将返回所有找到的病例,如果找不到任何内容,将返回一个空数组