Python Dict занимает последнее место на первом месте

Я сделал следующий дикт:

    logs = {
    '3h forecast': {
        'Ort': '',
        'Datum und Uhrzeit': '',
        'Temperatur': '',
        'Temperatur_Min': '',
        'Temperatur_Max': ''},

    '6h forecast': {
        'Ort': '',
        'Datum und Uhrzeit': '',
        'Temperatur': '',
        'Temperatur_Min': '',
        'Temperatur_Max': ''},

    '9h forecast': {
        'Ort': '',
        'Datum und Uhrzeit': '',
        'Temperatur': '',
        'Temperatur_Min': '',
        'Temperatur_Max': ''},

    '12h forecast': {
        'Ort': '',
        'Datum und Uhrzeit': '',
        'Temperatur': '',
        'Temperatur_Min': '',
        'Temperatur_Max': ''}
}

И распечатайте его со следующей строкой:

print(json.dumps(logs, sort_keys=True, indent=4))

И результат в консоли такой:

{ "12-часовой прогноз": { "Datum und Uhrzeit": "", "Орт": "", "Температура": "", "Температура_Макс": "", "Температура_Мин": "" }, "прогноз на 3 часа": { "Datum und Uhrzeit": "", "Орт": "", "Температура": "", "Температура_Макс": "", "Температура_Мин": "" }, "6-часовой прогноз": { "Datum und Uhrzeit": "", "Орт": "", "Температура": "", "Температура_Макс": "", "Температура_Мин": "" }, «Прогноз на 9 часов»: { "Datum und Uhrzeit": "", "Орт": "", "Температура": "", "Температура_Макс": "", "Температура_Мин": "" } }

Итак... Почему 12-часовой прогноз сейчас на первом месте, а не как логи dict на последнем месте?

Что я делаю не так? :)

Я думаю, вы хотите использовать sort_keys=False или просто удалить параметр sort_keys

Pedro Rocha 14.02.2023 19:57

Ваши собственные слова, где код говорит print(json.dumps(logs, sort_keys=True, indent=4)), что, в частности, вы ожидаете, что будет означать часть sort_keys=True?

Karl Knechtel 14.02.2023 20:04

Подсказка: '12' < '3' == True

0x5453 14.02.2023 20:11

@ 0x5453 Это неверно.

Kelly Bundy 14.02.2023 20:13
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Инструменты для веб-скрапинга с открытым исходным кодом: Python Developer Toolkit
Веб-скрейпинг, как мы все знаем, это дисциплина, которая развивается с течением времени. Появляются все более сложные средства борьбы с ботами, а...
Библиотека для работы с мороженым
Библиотека для работы с мороженым
Лично я попрощался с операторами print() в python. Без шуток.
Эмиссия счетов-фактур с помощью Telegram - Python RPA (BotCity)
Эмиссия счетов-фактур с помощью Telegram - Python RPA (BotCity)
Привет, люди RPA, это снова я и я несу подарки! В очередном моем приключении о том, как создавать ботов для облегчения рутины. Вот, думаю, стоит...
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Пошаговое руководство по созданию собственного Slackbot: От установки до развертывания
Шаг 1: Создание приложения Slack Чтобы создать Slackbot, вам необходимо создать приложение Slack. Войдите в свою учетную запись Slack и перейдите на...
Учебник по веб-скрапингу
Учебник по веб-скрапингу
Привет, ребята... В этот раз мы поговорим о веб-скрейпинге. Целью этого обсуждения будет узнать и понять, что такое веб-скрейпинг, а также узнать, как...
Тонкая настройка GPT-3 с помощью Anaconda
Тонкая настройка GPT-3 с помощью Anaconda
Зарегистрируйте аккаунт Open ai, а затем получите ключ API ниже.
1
4
56
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Просто удалите sort_keys=True

print(json.dumps(logs, indent=4))

#выход

{
    "3h forecast": {
        "Ort": "",
        "Datum und Uhrzeit": "",
        "Temperatur": "",
        "Temperatur_Min": "",
        "Temperatur_Max": ""
    },
    "6h forecast": {
        "Ort": "",
        "Datum und Uhrzeit": "",
        "Temperatur": "",
        "Temperatur_Min": "",
        "Temperatur_Max": ""
    },
    "9h forecast": {
        "Ort": "",
        "Datum und Uhrzeit": "",
        "Temperatur": "",
        "Temperatur_Min": "",
        "Temperatur_Max": ""
    },
    "12h forecast": {
        "Ort": "",
        "Datum und Uhrzeit": "",
        "Temperatur": "",
        "Temperatur_Min": "",
        "Temperatur_Max": ""
    }
}

О, это так просто - спасибо :)

DerFranzG 14.02.2023 20:02

Здесь произошло то, что вы сортировали ключи на основе строк. Итак, '1' из '12' сравнили с '3' из другого прогноза. А поскольку '1' ниже, чем '3' в таблице ASCII, он помещается раньше в списке.

Вы можете проверить это поведение самостоятельно, сравнив

'9' < '10'

К

9 < 10

Чтобы предотвратить это, в этом конкретном случае вы можете удалить атрибут sort_keys.

Другие вопросы по теме