我想为导致KeyError的键递归地将键值设置为“-”。你知道吗
这是我的字典
Rojar = {
'2010': {'fcf_share': '96.87', 'roce': '10.52', 'roic': '0', 'roe': '19.95',
'roa': '2.6'},
'2011': {'fcf_share': '30.43', 'roce': '9.94', 'roic': '0', 'roe':
'26.48', 'roa': '2.76'},
'2012': {'fcf_share': '75.54', 'roce': '11.84', 'roic':
'0', 'roe': '27.84', 'roa': '3.25'},
}
像Rojar一样,有500多人拥有这些数据,但并非所有人都拥有每个领域。 我想从每个人那里获取对应于每年的‘roce’、‘roe’和‘roa’字段。 通过将person代码解析为函数,我可以从
Rojar = {k: {'roce': v['roce'], 'roe':v['roe'],'roa':v['roa']} for k, v in Rojar.iteritems()}
#it returns
Rojar = {
'2010': {'roce': '10.52','roe': '19.95', 'roa': '2.6'},
'2011': {'roce': '9.94','roe': '26.48', 'roa': '2.76'},
'2012': {'roce': '11.84','roe': '27.84', 'roa': '3.25'},
}
但问题是,每个人可能都没有这些价值观。 例如,如果Rojan没有“roce”对应于“2010年”,而“roa”对应于“2012年”
#it has to return like
Rojar = {
'2010': {'roce': '-','roe': '19.95', 'roa': '2.6'},
'2011': {'roce': '9.94','roe': '26.48', 'roa': '2.76'},
'2012': {'roce': '11.84','roe': '27.84', 'roa': '-'},
}
谢谢
使用
dict.get
方法:这样,如果字典
v
没有给定的键,则该值将默认为“-”。你知道吗相关问题 更多 >
编程相关推荐