2016-10-21 7 views
-1

Я хочу, чтобы создать файл 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 каждый раз, когда я иду через петлю, чтобы включать другое значение в Словарь для ключа 'options'.

Я видел много вопросов, как это одно, но большинство предлагают использовать:

my_dict["cars"]["options"].append(...)

, который не работает, потому что «ДИКТ» объект не имеет атрибута append.

Кроме того, с помощью

my_dict["cars"]["options"]={'color':'green', features:["X","Y"]} или update()

заменяет значение для ключа 'options', а не прилагая значение.

+0

Что, именно ваш вопрос? –

+0

Используйте ['collection.defaultdict (list)'] (https://docs.python.org/2/library/collections.html#defaultdict-examples) вместо обычного 'dict'. – martineau

ответ

0

Использование append должно работать, проблема в том, что значение my_dict["cars"]["options"] - это не список.

Вы можете попробовать это, а

my_dict["cars"].update({ 
'options': my_dict.get("cars").get("options") + [{'color':'green', features:["X","Y"]} ] 
}) 
+0

Спасибо за быстрый ответ. – Pranav

+0

Нажатый ввод слишком быстро, я получаю «TypeError: неподдерживаемый тип операндов для +:« dict »и« list »для этого. – Pranav

+0

@Pranav Как я уже сказал, проверьте свое значение dict, потому что 'my_dict [" cars "] [" options "]' is dict не список. – levi