从文本文件创建字典列表

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]