我對列表與字典的理解以及每種方式的最佳用法以及如何嘗試學習時如何處理數據一直在掙扎。從字典鍵中定義python中的變量?
舉例來說,我有一個CSV文件中的以下數據:
device,parent,fexprefix
2248_1,5548_1,Eth101/1/
2248_2,5548_2,Eth102/1/
2248_3,5548_3,Eth103/1/
我創建了一個字典出它通過執行以下操作:
import csv
reader = csv.DictReader(open('fexmap2.csv'))
fexdata = {}
for row in reader:
for column, value in row.iteritems():
fexdata.setdefault(column, []).append(value)
現在我可以打印出我的字典如下:
{'device': ['2248_1', '2248_2', '2248_3'], 'fexprefix': ['Eth101/1/', 'Eth102/1/', 'Eth103/1/'], 'parent': ['5548_1', '5548_2', '5548_3']}
我可以看到我的鑰匙:
>>>fexdata.keys()
['device', 'fexprefix', 'parent']
到目前爲止我認爲這麼好。
但是現在我需要對這些數據進行查找以獲得新變量(希望這是正確的術語)。
舉例來說,我會分析一些JSON數據,我會了解設備「2248_1」。
因此,我需要查看它在字典中的父項是什麼,以創建一個我可以在腳本中開始使用的變量。
讓我得到的說,「2248_1」從JSON它被定義爲:
destdevice = 2248_1
所以現在我想說通俗地說是這樣的:
if destdevice is found in fexdata['device']
then deviceparent = fexdata['parent'] of fexdata['device']
在哪一點,deviceparent = 5548_1
考慮使用替代結構爲您的字典。使'device' id成爲關鍵字,並將值設爲'(parent,fexprefix)'的元組。這樣你就可以快速獲得任何「設備」的'parent'和'fexprefix'。 –
我認爲你正在做的事情,很可能這正是我需要做的。你會碰巧有一個如何實現這個目標的例子嗎? – ddevalco
好的使用你所說的以及其他來自其他人的信息,這對我的需求更好,我相信。 – ddevalco