首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Python在Json数组中搜索特定值

如何使用Python在Json数组中搜索特定值
EN

Stack Overflow用户
提问于 2016-06-30 14:17:45
回答 3查看 20.6K关注 0票数 7

我正在使用一个网站的API来获取信息。它输出100个值。

在此数组中搜索特定值的最佳实践是什么?

该数组如下所示:

代码语言:javascript
运行
复制
{
  "success":true,
  "data":
  {
    "array":
    [
      {
        "id":"1","name":"Value1"
      },
      {
        "id":"2","name":"Value2"
      }
    ]
  }
}

我尝试使用我在其他地方找到的这个代码片段来搜索数据,但是它不起作用:

代码语言:javascript
运行
复制
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不是很有经验。

非常感谢所有的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-06-30 14:26:22

不知道这段代码是从哪里来的,但它看起来非常错误。

从结构上看,你可以这样做:

代码语言:javascript
运行
复制
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!')
票数 7
EN

Stack Overflow用户

发布于 2016-06-30 14:25:37

你的代码可以简化很多:

代码语言:javascript
运行
复制
# 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...
票数 6
EN

Stack Overflow用户

发布于 2018-08-30 16:38:04

下面是一个用于搜索的一行示例:

代码语言:javascript
运行
复制
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']

这将返回所有找到的案例,如果没有找到,则返回一个空数组

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38115290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档