Какой самый Pythonic способ сортировать словарь с числовыми клавишами строки? - PullRequest
0 голосов
/ 04 июля 2018

Вот мой формат, dict:

{
    "server" : {
        "2" : {
            name : "Chris",
            text : "Hello!"
        },
        "1" : {
            name : "David",
            text : "Hey!"
        }
    }
}

Как я могу отсортировать dict['server'] численно, хотя ключи являются строками? Все способы, которые я могу придумать, требуют нескольких имен и совсем не чувствуют себя питоном.

1 Ответ

0 голосов
/ 04 июля 2018

Использование collections.OrderedDict

Ex:

import collections
d = {
    "server" : {
        "2" : {
            "name" : "Chris",
            "text" : "Hello!"
        },
        "1" : {
            "name" : "David",
            "text" : "Hey!"
        }
    }
}

print collections.OrderedDict(sorted(d["server"].items(), key=lambda x: int(x[0])))

выход:

OrderedDict([('1', {'text': 'Hey!', 'name': 'David'}), ('2', {'text': 'Hello!', 'name': 'Chris'})])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...