从文本文件创建字典列表
Create a List of Dictionaries from a Text File
我有一个包含设备主机名的文本文件:
fc-acc-v-a-1
fc-cor-r-a-1
fc-agg-r1
我需要从文本文件创建字典列表,如下所示:
[{'hostname': 'fc-acc-v-a-1', 'platform': ''},
{'hostname': 'fc-cor-r-a-1', 'platform': ''},
{'hostname': 'fc-agg-r1', 'platform': ''}]
到目前为止,这是我的代码:
with open("Devices.txt", "r") as devices:
keys = ["hostname", "platform"]
hosts = devices.read().splitlines()
device_dict = [dict(zip(keys, values)) for values in hosts]
print(device_dict)
然而,这并不是我想要的。这是输出示例:
[{'hostname': 'f', 'platform': 'c'},
{'hostname': 'f', 'platform': 'c'},
{'hostname': 'f', 'platform': 'c'}]
我需要它将文本文件中的每一行分配为键 hostname
的值,而 platform
的值现在可以为空。我计划使用 PySNMP 创建函数以从每个主机名获取 sysDescr
OID,这将成为每个设备的 platform
键值。
平台并非来自文件,您应该 hard-code 将其作为空字符串。没有必要使用 zip()
,因为您没有键和值列表。
device_list = [{'hostname': host, 'platform': ''} for host in hosts]
我有一个包含设备主机名的文本文件:
fc-acc-v-a-1
fc-cor-r-a-1
fc-agg-r1
我需要从文本文件创建字典列表,如下所示:
[{'hostname': 'fc-acc-v-a-1', 'platform': ''},
{'hostname': 'fc-cor-r-a-1', 'platform': ''},
{'hostname': 'fc-agg-r1', 'platform': ''}]
到目前为止,这是我的代码:
with open("Devices.txt", "r") as devices:
keys = ["hostname", "platform"]
hosts = devices.read().splitlines()
device_dict = [dict(zip(keys, values)) for values in hosts]
print(device_dict)
然而,这并不是我想要的。这是输出示例:
[{'hostname': 'f', 'platform': 'c'},
{'hostname': 'f', 'platform': 'c'},
{'hostname': 'f', 'platform': 'c'}]
我需要它将文本文件中的每一行分配为键 hostname
的值,而 platform
的值现在可以为空。我计划使用 PySNMP 创建函数以从每个主机名获取 sysDescr
OID,这将成为每个设备的 platform
键值。
平台并非来自文件,您应该 hard-code 将其作为空字符串。没有必要使用 zip()
,因为您没有键和值列表。
device_list = [{'hostname': host, 'platform': ''} for host in hosts]