【问题标题】:How to get all of the "ids" within a python array如何获取python数组中的所有“id”
【发布时间】:2016-12-24 16:53:40
【问题描述】:

所以我正在使用 API 提取一些 json 数据,它最初看起来像这样:

{
 "result": {
"elements": [
  {
    "id": "SV_3s0FmbrNancSmsB",
    "name": "Test Survey",
    "ownerId": "sdfsdfasdf",
    "lastModified": "2016-08-09T21:33:27Z",
    "isActive": false
  },
  {
    "id": "SV_dgJOVyJvwZR0593",
    "name": "Test Survey",
    "ownerId": "sdfdsfsdfs",
    "lastModified": "2016-08-04T17:53:37Z",
    "isActive": true
  }
],
"nextPage": null
  },
 "meta": {
 "httpStatus": "200 - OK"
}
}

所以我想使用 Python 提取这个 JSON 中的所有 id,这是我的代码:

url = "random.com"

headers = {
'x-api-token': "dsfsdagdfa"
}

response = requests.get(url, headers=headers)

data = json.loads(response.text)

id_0 = data['result']['elements'][0]['id']

print(id_0)

这基本上只会打印创建的数组中的第一个 Id。我该怎么做才能获得所有的 id?

【问题讨论】:

标签: python arrays json


【解决方案1】:

您可以使用此单线笔:

ids = [element['id'] for element in data['result']['elements']]

【讨论】:

    【解决方案2】:

    这应该可行。我相信地图或列表理解有一种更优雅的方式。

    ids = []
    
    for elem in data['result']['elements']:
      ids.append(elem['id'])
    

    如果你想懒惰地评估这个,做一个生成器理解!

    ids = (element['id'] for element in data['result']['elements'])

    【讨论】:

    • 谢谢!这行得通,但其他的更干净!
    • 是的,他们确实是!
    【解决方案3】:

    怎么样:

    ids = [element['id'] for element in data['result']['elements']]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-24
      • 2019-07-03
      • 2021-02-17
      • 2022-10-31
      • 2014-11-16
      • 2017-09-20
      • 2021-10-13
      • 2014-12-29
      相关资源
      最近更新 更多