Желаемый результат:
{"MainKey":
[{"key01":"value01","key02":"value02"},
{"key11":"value11","key22":"value02"}
]
}
Код, который я пробовал:
data = {}
data2=[{}]
data2[0]['key01'] = 'value01'
data2[0]['key02']= 'value02'
data2[1]['key11'] = 'value11' #index out of bounds error
data2[1]['key12']= 'value12'
data['MainKey']=data2
import json
with open('try.json", 'w') as outfile:
json.dump(data,outfile)
Но это дает ошибку индекса за пределами границ для второго набора значений в данных2. Как я могу это решить?
Один из подходов состоит в том, чтобы создать число dict, использующего range
.
Пример:
data = {}
data2 = [{} for i in range(2)]
data2[0]['key01'] = 'value01'
data2[0]['key02']= 'value02'
data2[1]['key11'] = 'value11'
data2[1]['key12']= 'value12'
data['MainKey']=data2
print(data)
Выход:
{'MainKey': [{'key01': 'value01', 'key02': 'value02'}, {'key12': 'value12', 'key11': 'value11'}]}
data2 - это список только с одним элементом, поэтому его индекс не может быть больше 0.
>>> data2=[{}]
>>> data2[0]['key01'] = 'value01'
>>> data2[0]['key02'] = 'value02'
>>> data2
[{'key01': 'value01', 'key02': 'value02'}]
data2 = [{} for i in range(n)]