У меня есть следующий словарь на Python, который я сохраняю в файл:
d2 = {
"CHARACTER": {
"IDENTITY": {
"FORM": {
"id": "BK1",
"type": "MAGE",
"role": "DARK"
}
},
"USER": {
"owner": {
"id": "SABBATH13"
},
"level": "16"
}
}
}
jsonfile = open('d2.json', 'w')
jsonfile.write(simplejson.dumps(d2, indent=4))
jsonfile.close()
Однако мне сказали, что это объект JSON, который мне нужно превратить в массив JSON формы:
[{
"CHARACTER": {
"IDENTITY": {
"FORM": {
"id": "BK1",
"type": "MAGE",
"role": "DARK"
}
},
"USER": {
"owner": {
"id": "SABBATH13"
},
"level": "16"
}
}
}]
По сути, это добавление квадратных скобок в начало и конец.
Как правильно это сделать? Должен ли я преобразовать в строку и добавить скобки, а затем преобразовать обратно? Извините, здесь новичок в JSON.
Вы не умеете делать jsonfile.write(simplejson.dumps([d2], indent=4)
?
Вы думаете на неправильном уровне абстракции. Дело не в скобках, а в том, что у вас есть структура данных, которая является объектом, когда вам, очевидно, нужен список / массив объектов (даже если в списке всего один объект). Так:
d2 = [d2]
Теперь это dumps
, и вы получаете то, что вам нужно.
Спасибо, работает, хотя я пробовал нечто подобное и получил: ValueError: dictionary update sequence element #0 has length 9; 2 is required