Как упорядочить данные JSON — упорядочить возвращаемые результаты от наименьшего к наибольшему

#python #json

#python #json

Вопрос:

 for val in online_json["payload"]["orders"]:
    if val["user"]["status"] == "ingame" and val["order_type"] == "sell":
        username = str(val["user"]["ingame_name"])
        quantity = int(val["quantity"])
        game_price = int(val["gameprice"])

        print(username   ' is selling '   str(quantity)   ' for '   str(game_price)   '  each.')
  

В настоящее время результат запроса находится в любом порядке, который возвращает API, что приводит к большому беспорядку,
Я хотел бы упорядочить результаты от наименьшей game_price до наибольшей, чтобы легко отображать наименьшую цену наряду с остальной информацией.

Комментарии:

1. Укажите некоторые данные в своем коде.

2. Пожалуйста, предоставьте образец структуры JSON

3. Здесь у вас нет никакого JSON; у вас есть только dict , который мог возникнуть в результате декодирования объекта JSON.

Ответ №1:

Просто используйте sorted и соответствующие key , которые будут lambda x:int(x['gameprice']) . Также вы можете упростить свой print вместо использования конкатенации используйте несколько параметров

 for val in sorted(online_json["payload"]["orders"], key=lambda x:int(x['gameprice'])):
    if val["user"]["status"] == "ingame" and val["order_type"] == "sell":
        username = str(val["user"]["ingame_name"])
        quantity = int(val["quantity"])
        game_price = int(val["gameprice"])

        print(username, 'is selling', quantity, 'for', game_price, 'each.')