【发布时间】:2020-05-15 03:42:01
【问题描述】:
我在 python 中有一个字典,我想根据我拥有的键提取一些值。对于每一行,我有 3 个键(到达、dep、代码),有时它们都会出现,但有时只存在 1 或 2 个。如果存在键,我希望每一行都取值,否则将其设置为不可用或 0。这是我的示例数据:
示例数据
dict_items([('arrival', {'week': 3, 'timing': '15:30'}), ('code', '123')])
dict_items([('dep', {'week': 3, 'timing': '10:15'}), ('code', '456')])
dict_items([('arrival', {'week': 4, 'timing': '22:30'}), ('dep', {'week': '', 'timing': ''}), ('code', '567')])
dict_items([('dep', {'week': 7, 'timing': '23:00'})
输出包括 5 个列表
arrival_week_list []
arrival_timing_list []
dep_week_list []
dep_timing_list []
code []
到目前为止,这是我的代码,我最初尝试过它只是为了获得“到达”的一周(“dep”内也有一周)
for i in list:
for row in i:
try:
arrival_week_list.append(i['week'])
except KeyError:
arrival_week_list.append(np.nan)
print(arrival_week_list)
但我得到一个错误:TypeError: list indices must be integers or slices, not str
【问题讨论】:
-
row是list而不是dict -
我没有包含循环的第一行,在第一次迭代中我访问了字典,然后我对如何继续感到困惑
-
在我看来你想定义一个类。尝试用 dicts 来做这件事真的很烦人而且无法维护。
标签: python list dictionary