【问题标题】:Writing a python function to loop out the values of each id编写一个python函数来循环出每个id的值
【发布时间】:2025-12-31 17:10:02
【问题描述】:

以下是我的 json 数据。我想做的是编写一个python函数来循环出每个id的值。有人可以帮我吗?

[
    {
        "id": "1", 
        "code": "111", 
    }, 
    {
        "id": "2", 
        "code": "222", 
    }, 
    {
        "id": "3", 
        "code": "333", 
    }
]

【问题讨论】:

  • 你解析JSON数据了吗?你有什么形式的 JSON 数据:字符串,Python 列表?
  • 谢谢你,西蒙。我已经解析了json数据。抱歉,Simeon,我仍然无法弄清楚如何在评论中输入我的代码。我已经用 json.loads() 和 json.dumps() 解析了 json 数据
  • 谢谢你的提问,布尔汉。是,我确定。它的输出来自: json.dumps(sortJson["aaa"]["bbb"], sort_keys=True, indent=4, skipkeys=True)

标签: python json list


【解决方案1】:

如果jsondata 是包含您的示例数据的 Python 列表,您可以这样做:

for item in jsondata:
    print item['id']

【讨论】:

  • 谢谢你,西蒙。我试过这个。但是控制台给了我这个:/n print item["id"]/n TypeError: string indices must be integers, not str
  • 在这种情况下,您的列表包含字符串,而不是字典。在json.loads 之后,您应该有一个带有字典的列表结构,而不是字符串列表(当然,除非 JSON 数据是字符串列表)。
  • 谢谢。你说的对。我为刚刚发布的 json 做了 json.loads() 。然后加载的 json 工作。谢谢你的正确答案。我的朋友!!!睡个好觉!!! :-)
【解决方案2】:

如果 jsondata 是包含示例数据的 Python 列表,您可以这样做:

ids = [item['id'] for item in jsondata]

【讨论】:

    【解决方案3】:
    >>> data=[{"id": "1","code": "111",},{"id": "2","code": "222",},{"id": "3","code": "333",}]
    >>> list_id=[x['id'] for x in data]
    >>> print(list_id)
    ['1','2','3']
    

    【讨论】:

    • 嗨 Ashwini,这个答案还有另一个问题。我不知道为什么输出类似于 [u'1',u'2',u'3']... 为什么里面有一些“u”?
    • 没错,我用的是python2.7。我怎样才能删除那些U? :-)
    • 这可能会有所帮助:*.com/questions/4855645/…
    最近更新 更多