我有一個包含設備主機名的文本檔案:
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'}]
我需要它來將文本檔案中的每一行分配為 keyhostname的值,而 for 的值platform現在可以為空。我計劃使用 PySNMP 創建函式以 sysDescr從每個主機名中獲取 OID,這將成為platform每個設備的鍵值。
uj5u.com熱心網友回復:
平臺不是來自檔案,您應該將其硬編碼為空字串。沒有必要使用zip(),因為您沒有鍵和值串列。
device_list = [{'hostname': host, 'platform': ''} for host in hosts]
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/478275.html
