![](/img/trans.png)
[英]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.