#python #json #sorting #date #dump
#python #json #сортировка #Дата #дамп
Вопрос:
Я прочитал эту страницу в W3Schools и заметил, что она показывает, что вы можете сбрасывать и сортировать по алфавиту, можно ли сортировать по времени?
Мой оператор дампа:
with open("./warns.json","w") as f:
json.dump(warns,f)
Как мне его сбросить и отсортировать по дате?
Комментарии:
1.
json.dump(warns, f, sort_keys=True)
?2. Вы можете сортировать только ключи словаря (объект / отображение) с помощью
json.dumps(warns, f, sort_keys = True)
. Список (массив) не может быть отсортирован с помощью этой функции. Т.е.{"b": 456, "a": 123}
будет отсортирован по{"a": 123, "b": 456}
, но[3, 2, 1]
останется[3, 2, 1]
.3. @deadshot разве это не сортируется только по алфавиту, и я не уверен, что ты имеешь в виду??
4. @RomulusHill Я обновил свой комментарий выше дополнительным примером.
5. О, теперь я понимаю, арти
Ответ №1:
Из https://docs.python.org/3/library/json.html#json.dump :
Если значение sort_keys равно true (по умолчанию: False), то выходные данные словарей будут отсортированы по ключу.
Сортировка по дате отличается, поскольку зависит от структуры вашего JSON. Если вам это действительно нужно, вы можете изменить кодировщик:
Чтобы использовать пользовательский подкласс JSONEncoder (например, тот, который переопределяет метод default() для сериализации дополнительных типов), укажите его с помощью cls kwarg; в противном случае используется JSONEncoder .
Это используется для сериализации типов, но вы также можете управлять порядком вывода.
Другим решением является использование отсортированного массива в JSON, чтобы обеспечить соблюдение порядка.