#python #dictionary
#python #словарь
Вопрос:
У меня есть этот словарь «свойства» с ключом, livenessTests
и, в свою очередь, livenessTests
это список словарей. Как мне добавить / дописать livenessTests
к другому словарю json
?
properties = {
'livenessTests': [
{
'name':'http' '_' 'livenesstest',
'testObject':'/default.html'
},
{
'name':'https' '_' 'livenesstest',
'testObject':'/default.html'
}
]
Результирующий каталог «json» должен быть чем-то вроде
json : {
"acg": {
"id": "1.87",
"name": "Internal"
},
"asmappings": [],
"cidrMaps": [],
"properties": {"livenessTests" : [{<contents from list above>},
{<contents from list above>}
]
}
Я пытаюсь это
for key in properties.keys():
print key
json['properties'].append(property[key])
Я получаю эту ошибку,
> json['properties'].append(properties[key])
KeyError: 'properties'
Что я здесь делаю не так? Извините, новичок в изучении. Спасибо
Комментарии:
1. Поскольку ответы приведены ниже, просто небольшой комментарий. нехорошо использовать json в качестве имени словаря, поскольку существует также пакет с именем json.
Ответ №1:
Используйте метод обновления словаря.
json.update(properties)
Пример:
properties = {
'livenessTests': [
{'name':'http' '_' 'livenesstest',
'testObject':'/default.html'
},
{
'name':'https' '_' 'livenesstest',
'testObject':'/default.html'
}
]}
json = {"acg": {
"id": "1-7KLGU.G19717",
"name": "Akamai Internal-1-7KLGU - 1-7KLGU.G19717"
},
"asmappings": [],
"cidrMaps": [],
"livenessTests" : []
}
json.update(properties)
print json
Ответ №2:
Вы пытаетесь найти ключ properties
в json
, но, как вы можете видеть в опубликованном вами словаре, ключа там нет properties
. Если вы хотите создать новый список словарей в json
словаре, сначала вам нужно объявить его.
json['properties'] = [] # Missing this!
for key in properties.keys():
print key
json['properties'].append(property[key])
Комментарии:
1. Извините, я улучшил свой вопрос, чтобы он был корректным. Методы, предложенные в ответах, дают «livenessTests»: [ { «name»: «http_livenessTest», «TestObject»: «/default.html » }, Но я надеялся получить «свойства»: [ {«livenessTests»: [ { «name»: «Тестирование отработки отказа», «TestObject»: «/default.html » } ], } Нужно ли мне где-то указывать свойства в качестве ключа?
2. Lol … это был не тот вопрос, который вы изначально задавали. Но ладно.