[英]Looping through dictionary and updating in python List Comprehension
[英]Looping through dictionary or list in Python
我定義了這本字典 object。 我已經通過 go 將一個循環放在一起並打印出 KEY / VALUE 對。
當代碼循環通過“file1_info”部分時,我可以正常訪問這些項目。 但是,當它到達“索引”部分時,我無法到達任何地方。
有趣的是,如果“索引”部分下只有 1 項,則代碼將起作用。 但不止一個,我得到一個錯誤。
關於如何做到這一點的任何建議?
DATA_INFO = {'file1_info': {
'filename' : 'Datafile1_' + str(yyyy),
'file_ext' : 'xls',
'active' : 'Y',
'calc_idx' : '1,4',
'inc_columns': '1,2,11',
'indexes':
[{'name': 'ZAXDR', 'active': 'N', 'idx_type': 'domestic', 'data_row': 9, 'multi_benchmark': 'N'},
{'name': 'ZAXLP', 'active': 'Y', 'idx_type': 'domestic', 'data_row': 9, 'multi_benchmark': 'N'},
{'name': 'ZAXERNL', 'active': 'Y', 'idx_type': 'domestic', 'data_row': 9, 'multi_benchmark': 'N'},
{'name': 'ZAXERNS', 'active': 'Y', 'idx_type': 'domestic', 'data_row': 9, 'multi_benchmark': 'N'}]
},
'file2_info': {
'filename' : 'Datafile2_' + str(yyyy),
'file_ext' : 'xls',
'active' : 'Y',
'calc_idx' : '1,4',
'inc_columns': '1,2,11',
'indexes':
{'name': 'ZAX', 'active': 'Y', 'idx_type': 'domestic', 'data_row': 9, 'multi_benchmark': 'N'}
}
}
for v_key, v_label in DATA_INFO.items():
v_filename = NYSE_INFO[v_key]['filename']
v_file_ext = NYSE_INFO[v_key]['file_ext']
v_active = NYSE_INFO[v_key]['active']
v_calc_idx = NYSE_INFO[v_key]['calc_idx']
v_inc_columns = NYSE_INFO[v_key]['inc_columns']
v_indexes = NYSE_INFO[v_key]['indexes']
/*** This part is not traversing the "indexes" section ***/
for k, v in DATA_INFO[v_key]['indexes'].items():
print("KEY: ", k)
print("VAL: ", v)
提前謝謝了。
好吧,您可以使用以下循環對其進行迭代的任何方式都存在語法錯誤。
for OuterKey, OuterValue in DATA_INFO.items():
if (isinstance(OuterValue, dict)):
print("Key :"+ OuterKey)
for InnerKey, InnerValue in OuterValue.items():
if isinstance(InnerValue, list):
print("\t"+InnerKey+ " -> ")
for eachEle in InnerValue:
print(eachEle)
else:
print("\t"+InnerKey+ " -> " +OuterValue.get(InnerKey))
else:
pass
您可以進一步增強以獲得更好的結果我剛剛迭代了結構。
注意:我已經更新了結構,如下所示。
DATA_INFO = {'file1_info': {
'filename' : 'Datafile1_' + str(yyyy),
'file_ext' : 'xls',
'active' : 'Y',
'calc_idx' : '1,4',
'inc_columns': '1,2,11',
'indexes':
[{'name': 'ZAXDR', 'active': 'N', 'idx_type': 'domestic', 'data_row': 9, 'multi_benchmark': 'N'},
{'name': 'ZAXLP', 'active': 'Y', 'idx_type': 'domestic', 'data_row': 9, 'multi_benchmark': 'N'},
{'name': 'ZAXERNL', 'active': 'Y', 'idx_type': 'domestic', 'data_row': 9, 'multi_benchmark': 'N'},
{'name': 'ZAXERNS', 'active': 'Y', 'idx_type': 'domestic', 'data_row': 9, 'multi_benchmark': 'N'}]
},
'file2_info': {
'filename' : 'Datafile2_' + str(yyyy),
'file_ext' : 'xls',
'active' : 'Y',
'calc_idx' : '1,4',
'inc_columns': '1,2,11',
'indexes':[
{'name': 'ZAX', 'active': 'Y', 'idx_type': 'domestic', 'data_row': 9, 'multi_benchmark': 'N'}]
}
}
'indexes' -> 鍵值更新為列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.