Создание нескольких значений для ключа в json

#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, это список.