Задать вопрос
@runapa

Как человекообразно отсортировать json в python?

Есть json в котором ключи имеют вид “1-1”, “1-12”, “1-2”, “1-3”…
Сейчас он отсортирован логичным для компьютера образом. А как отсортировать ключи по человечески? : “1-1”, “1-2”, “1-3”, “1-12”
  • Вопрос задан
  • 279 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 4
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Стандарт JSON не гарантирует упорядоченность ключей, поэтому не стоит даже пытаться их сортировать.
Ответ написан
@deliro
In [1]: x=["1-1", "1-12", "1-2", "1-3"]

In [2]: sorted(x, key=lambda t: tuple(map(int,t.split("-"))))
Out[2]: ['1-1', '1-2', '1-3', '1-12']
Ответ написан
Комментировать
Vindicar
@Vindicar
RTFM!
Пересоздать ключи в словаре в правильном порядке и отключить дефолтную сортировку.
Ответ написан
lxstvayne
@lxstvayne
Люблю Python
from collections import OrderedDict

x = {"1-3": None, "1-1": None, "1-12": None}
ordered_dict = OrderedDict(sorted(x.items(), key=lambda item: tuple(map(int, item[0].split("-")))))
print(ordered_dict)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
01 февр. 2025, в 14:08
28000 руб./за проект
01 февр. 2025, в 13:13
5000 руб./за проект
01 февр. 2025, в 13:12
5000 руб./за проект