#python #json
#python #json
Вопрос:
Я хочу создать файл json, который имеет формат, подобный этому:
{
“cars”: {
“model”: “Volkswagon X5”,
“options”: [{
“color”: “red”,
“features”: [“automatic”, “4-wheel-drive”]
}, {
“color”: “blue”,
“features”: [“automatic”, “2-wheel-drive”]
}]
}
}
Я хотел бы предпочтительно использовать стандартную json
библиотеку, но я открыт для использования других библиотек. Я использую Python 2.7.9.
Я получаю значение (цвет и функции) для ключа 'options'
в цикле, и я хотел бы обновлять dict каждый раз, когда я прохожу цикл, чтобы включить другое значение в dict для ключа 'options'
.
Я видел много вопросов, подобных этому, но большинство из них предлагают использовать:
my_dict["cars"]["options"].append(...)
который не работает, потому что объект ‘dict’ не имеет атрибута append
.
Кроме того, используя
my_dict["cars"]["options"]={'color':'green', features:["X","Y"]}
или update()
заменяет значение для ключа 'options'
вместо добавления значения.
Комментарии:
1. В чем, собственно, заключается ваш вопрос?
2. Используйте
collections.defaultdict(list)
вместо обычногоdict
.
Ответ №1:
Использование append
должно работать, проблема в том, что my_dict["cars"]["options"]
значение не является списком.
Вы также можете попробовать это
my_dict["cars"].update({
'options': my_dict.get("cars").get("options") [{'color':'green', features:["X","Y"]} ]
})
Комментарии:
1. Спасибо за быстрый ответ.
2. Слишком быстро нажал enter, я получаю «TypeError: неподдерживаемые типы операндов для : ‘dict’ и ‘list’ » для этого.
3. @Pranav Как я уже говорил вам, проверьте значение вашего dict, потому что
my_dict["cars"]["options"]
это dict, а не список.4. Да, вы правы, но мне нужно, чтобы это было как dict.
5. @Pranav но в примере, который вы опубликовали, параметры — это не dict, это список.