【问题标题】:How to find the minimum in JSON in Python如何在 Python 中找到 JSON 中的最小值
【发布时间】:2022-11-19 10:45:14
【问题描述】:

有一个 JSON 文件的一部分:

{
    "payload": {
        "orders": [
            {
                "quantity": 1,
                "platinum": 4,
                "visible": true,
                "order_type": "sell",
                "user": {
                    "reputation": 5,
                    "region": "en",
                    "last_seen": "2022-11-17T08:15:43.360+00:00",
                    "ingame_name": "Noxxat",
                    "id": "5b50d73859d885026b523cd1",
                    "avatar": null,
                    "status": "offline"
                },
                "platform": "pc",
                "region": "en",
                "creation_date": "2020-09-04T15:30:41.000+00:00",
                "last_update": "2021-11-19T09:41:43.000+00:00",
                "id": "5f525da1c98cd000d7513813"
            },
            {
                "order_type": "sell",
                "visible": true,
                "quantity": 2,
                "platinum": 6,
                "user": {
                    "reputation": 3,
                    "region": "en",
                    "last_seen": "2022-11-18T14:22:53.023+00:00",
                    "ingame_name": "Dhatman",
                    "id": "5b79921649262103f74b6585",
                    "avatar": null,
                    "status": "offline"
                },
                "platform": "pc",
                "region": "en",
                "creation_date": "2020-11-06T10:32:32.000+00:00",
                "last_update": "2022-10-11T16:51:55.000+00:00",
                "id": "5fa526406ff3660486ef556c"
            },
            {
                "quantity": 1,
                "visible": true,
                "platinum": 5,
                "order_type": "sell",
                "user": {
                    "reputation": 4,
                    "region": "en",
                    "last_seen": "2022-11-18T18:31:49.199+00:00",
                    "ingame_name": "TheronGuardxx",
                    "avatar": "user/avatar/5e235e94ab7656047a86f70c.png?7b1e90d474a62c6ba3c2d3ef06aed927",
                    "id": "5e235e94ab7656047a86f70c",
                    "status": "offline"
                },
                "platform": "pc",
                "region": "en",
                "creation_date": "2020-12-17T22:46:57.000+00:00",
                "last_update": "2022-10-15T23:37:01.000+00:00",
                "id": "5fdbdfe13e8c4f017f5e3352"
            }
        ]
    }
}

如何在这个文件中找到最少的铂金数量? 据我了解,我需要创建一个循环遍历整个文件,如果当前的铂金数量小于当前以 min 写入的数量,则为变量 min 分配一个新值。

但是代码应该是什么样的呢?

目前,我已经编写了一个块,用于从 JSON 文件的最后一个元素中查找铂金的数量、卖家的别名和商品数量。

num = 1
flagSell = 0

while flagSell == 0:
    if r_json["payload"]["orders"][len(r_json["payload"]["orders"]) - num]["user"]['status'] == 'ingame':
        if r_json["payload"]["orders"][len(r_json["payload"]["orders"]) - num]["region"] == 'en':
            if r_json["payload"]["orders"][len(r_json["payload"]["orders"]) - num]["order_type"] == 'sell':
                min = r_json["payload"]["orders"][len(r_json["payload"]["orders"]) - num]["platinum"]
                author = r_json["payload"]["orders"][len(r_json["payload"]["orders"]) - num]["user"]["ingame_name"]
                quantity = r_json["payload"]["orders"][len(r_json["payload"]["orders"]) - num]["quantity"]
                flagSell = 1
            else:
                num += 1
        else:
            num += 1
    else:
        num += 1

【问题讨论】:

    标签: arrays json python-3.x for-loop min


    【解决方案1】:

    尝试使用内置函数 min() 根据 platinum 键查找最小订单(data 是问题中的字典):

    min_order = min(data["payload"]["orders"], key=lambda o: o["platinum"])
    
    print("Min Platinum =", min_order["platinum"])
    print("Name =", min_order["user"]["ingame_name"])
    print("Quantity =", min_order["quantity"])
    

    印刷:

    Min Platinum = 4
    Name = Noxxat
    Quantity = 1
    

    【讨论】:

      猜你喜欢
      • 2022-10-17
      • 2021-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-30
      • 2021-02-25
      • 1970-01-01
      相关资源
      最近更新 更多