Я работаю над нестандартным сценарием Python для динамической инвентаризации.Я создал группы из пар k = v, но для определенных групп я хочу, чтобы ключ имел префикс к значениям, в противном случае названия групп не имеют смысла (1,2,3 и т. Д.)
Я пробовалнаклеивание ключевого имени в разных местах, но без должного понимания того, что я делаю.В приведенном ниже примере я пытаюсь получить группу «bucket», чтобы каждое значение выглядело как bucket_3 (тогда это будет имя группы Ansible).
result = {
'all': {
'hosts': [],
'vars': {},
},
'_meta': {
'hostvars': {}
}
}
server = ''
for raw_line in output.split('\n'):
line = raw_line.strip()
if len(line) > 0 and not line.startswith(comment_char):
if line.endswith(server_char):
server = line[:-1]
result['all']['hosts'].append(server)
result['_meta']['hostvars'][server] = {}
else:
raw_key, raw_value = line.split('=', 1)
key = raw_key.strip()
value = raw_value.strip()
result['_meta']['hostvars'][server][key] = value
if key == 'ansible_groups':
for group in value.split(","):
if group not in result.keys():
result[group] = {'hosts': [], 'vars': {}}
result[group]['hosts'].append(server)
if key == 'bucket':
for group in value:
if group not in result.keys():
result[group] = 'bucket_' + {'hosts': [], 'vars': {}}
result[group]['hosts'].append(server)
Я ожидаю получить такие группы, какbucket_1, bucket_2 и т. д. (у источника есть «bucket = 1», «bucket = 2» и т. д.).
Получение ошибки "'bucket_' + {'hosts': [], 'vars': {}} Ошибка типа: невозможно объединить объекты 'str' и 'dict' *
предоставлено, этоэто только моя последняя попытка, поэтому ошибки менялись, когда я пытаюсь найти правильный способ изменить имя группы.