Как перебрать словарь, созданный JSON, в указанном порядке пар ключ-значение? - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть JSON, который выглядит следующим образом (этот пример - просто игрушечный пример, чтобы проиллюстрировать точку, итерация по умолчанию может сработать))

{ "A": 1, "B": 2, "C": 3 }

Я могу загрузить этот JSON в Python(v2.7) словарь.

with open('/path/to/json/file') as f:
     json_data = json.load(f)

Затем я перебираю пары ключ-значение следующим образом.

for k, v in json_data.iteritems():
     print('{}, {}'.format(k, v))

Ниже выводится следующее:

A, 1
C, 3
B, 2

То, что я хочу - это иметь возможность перебирать элементы в порядке, указанном в JSON.Итак, мой ожидаемый вывод должен быть.

A, 1
B, 2
C, 3

Есть ли способ считывания и сохранения пар ключ-значение из JSON в словарь Python, чтобы при их итерации по ним порядок, заданный JSONсохраняется и считывается в таком порядке?

У меня нет контроля с производителем JSON для хранения данных в массиве (обсуждается здесь для Java).Мне интересно, существует ли LinkedHashMap , как в Java с Python, который, возможно, я могу использовать с json.load, чтобы сохранить порядок вставки для чтения.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 21 сентября 2018

Вы можете получить загрузчик json для сборки OrderedDict:

import json
import collections

with open('example.json') as f:
    json_object = json.load(f,object_pairs_hook=collections.OrderedDict)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...