Python сохраняет список словарей в файл json, упорядоченный по значению поля словаря - PullRequest
0 голосов
/ 16 января 2019

У меня есть список словарей. Одним из полей словарей является "name". Я сохраняю этот список словарей в файл: командой

json.dump(myList, fileName, indent=4)

но он не сохраняется, как я хотел бы. Поскольку list структура данных - это структура, которая позволяет сортировать, как я могу сохранить ее как массив json, упорядоченный по полю элементов словаря?

Например, рассмотрим следующий список словарей:

l =[{'name':'c', 'val' : 9},{'name': 'a', 'val': 10}, {'name': 'b', 'val': 10}, {'name': 'aa', 'val': 10}]

Я хотел бы в качестве вывода jsons, например:

[
    {
        "name": "a",
        "val": 10
    },
    {
        "name": "aa",
        "val": 10
    },
    {
        "name": "b",
        "val": 10
    },
    {
        "name": "c",
        "val": 9
    }
]

1 Ответ

0 голосов
/ 16 января 2019

Вы можете сортировать по определенному ключу, используя встроенную команду sorted. Я думаю, что здесь есть множество примеров этого, но специально для вашей проблемы:

l = sorted(l, key=lambda l: l['name'])
print(l)
# [{'name': 'a', 'val': 10},
#  {'name': 'aa', 'val': 10},
#  {'name': 'b', 'val': 10},
#  {'name': 'c', 'val': 9}]
...