#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.')