【问题标题】:How to query JSON data in python #noobie如何在 python #noobie 中查询 JSON 数据
【发布时间】:2020-04-10 23:58:03
【问题描述】:

假设我有这样的 JSON 数据:

{
    "friends": {
        "Charlie": {
            "gender": "female",
            "age": "28"
        },
        "Josh": {
            "gender": "male",
            "age": "22"
        },
        "Annie": {
            "gender": "female",
            "age": "24"
        }
    }
}

“查询”我所有朋友的年龄的最佳/最 Python 的方式是什么?

我知道我可以通过调用来深入了解特定数据集:

var_holding_json['friends']['Josh']['age']

但我无法理解如何从这里走到

  1. “获取所有我朋友的年龄”。
  2. “获取我所有年龄> 22的朋友的名字”

感谢您的指点!

【问题讨论】:

    标签: python json


    【解决方案1】:

    假设您将data 中的数据提取出来,您可以使用

    [data['friends'][x]['age'] for x in data['friends']]
    

    如果您只想获取年龄 > 22 的朋友的姓名,您可以执行以下操作:

    [x for x in data['friends'] if data['friends'][x]['age'] > 22]
    

    【讨论】:

    • 这是pythonic的方式:)
    • 是的,宫城老师 - 它是......:D
    【解决方案2】:

    这是一种解决方案,假设上面的 json 存储在名为 data 的变量中。

    for friend in data["friends"]:
        print(data["friends"][friend]["age"])
    
    for friend in data["friends"]:
        age = int(data["friends"][friend]["age"])
        if (age > 22):
            print(friend)
    

    【讨论】:

    • (当您已经发布您的答案时,我已经在我的问题中编辑了第二个查询。感谢您的快速回复,请原谅我的“听得见”。)
    • 非常感谢,@Sri。非常感谢您令人难以置信的快速和有益的回应 - 特别是因为有些人同样迅速地否决了我的问题。 :(#sucksbeinganoob
    • 不用担心。继续尝试。其他人使用列表理解发布了一个更简洁的解决方案,您可能想看看。
    猜你喜欢
    • 2021-09-27
    • 1970-01-01
    • 2016-12-10
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多