Я хотел бы попытаться исправить мой скрипт, чтобы привести вывод в порядок и читабельность. У меня есть ответ JSON со значениями, которые мне нужно собрать в отдельный список (называемый ниже new_report). Список JSON со словарями выглядит так:
json_op = [{'Group': '1', 'hostname': 'host2', 'sw_version': '2.08', 'bios': '1.214'},
{'Group': '2', 'hostname': 'host45', 'sw_version': '2.15', 'bios': '1.224'},
{'Group': '3', 'hostname': 'host23', 'sw_version': '2.10', 'bios': '1.254'},
{'Group': '4', 'hostname': 'host100', 'sw_version': '2.20', 'bios': '1.234'}]
Я написал следующее, чтобы перебирать его и извлекать значения для 'hostname' и 'sw_version' в новый словарь:
new_report = []
for item in json_op:
keys = ['hostname', 'sw_version']
hostname_report = {item[x] for x in keys if x in item}
new_report.append(hostname_report)
print(new_report)
Текущий вывод - это список наборов:
[{'2.08', 'host2'}, {'host45', '2.15'}, {'2.10', 'host23'}, {'2.20', 'host100'}]
Я бы очень хотел этого добиться (последовательность не имеет значения, пока сохраняется имя хоста, формат sw_version):
[{'host2', '2.08'}, {'host45', '2.15'}, {'host23', '2.10'}, {'host100', '2.20'}]
Кто-нибудь знает, где я ошибаюсь с пониманием списка в моем коде?
Спасибо