#python #json #dictionary #load
Вопрос:
Я пытаюсь загрузить json (основанный на словаре python) в инструмент, как показано ниже. Все идет хорошо.Проблема в том, что из добавленных вложенных словарей последней пары ключ-значение будет загружен только первый («фаза:46,часть 008»). Другие пары ключевых значений игнорируются. Однако, когда подразделы состоят из двух разных пар значений ключа(например, «нормальные фазы» и «аномальные фазы», каждая из которых содержит одну пару значений ключа), такой проблемы нет, и оба загружаются правильно. У кого-нибудь есть предположения, почему это может быть так? Json выглядит следующим образом:
{
"nr": 135300,
"first_age": 86,
"heart_rate": "51",
"metabolism": "Average amp; Assigned",
"normal_phases": [
{
"phase": 46,
"part": "008"
},
[
{
"phase": 45,
"part": "053"
}
],
[
{
"phase": 567,
"part": "007"
}
],
[
{
"phase": 591,
"part": "446"
}
]
]
},
Чтобы дать вам представление, фрагмент кода для создания последнего словаря (этап 591, часть 446):
else:
dict6 = [{'phase': int(a[45]),
'part': (a[17])}]
d['normal_phases'].append(dict6)
Комментарии:
1. NB каждый дополнительный диктант находится внутри списка. Поэтому вам следует повторить ключ «normal_phases» и собрать их все, если это необходимо. Можете ли вы поделиться своей попыткой, а также ожидаемым результатом?
2. Спасибо. Вы имеете в виду присвоение всех значений фазы и детали их соответствующему ключу. например: создание только одного словаря с 4 значениями на ключ вместо 4 отдельных словарей?
3. Я не уверен в ожидаемом результате, так как не знаю, какую правильную конструкцию Json будет принимать инструмент для пар «нормальных фаз». Я добавил фрагмент кода для последней пары.
4. Ах, я не уверен, каково конечное требование, но если фазер и часть всегда будут считываться вместе, то да, я имел в виду сохранение всей фазы в виде списка, и поэтому будет соответствующая фаза.