【发布时间】:2019-09-06 04:51:05
【问题描述】:
我需要系统地访问嵌套在第 3 级字典中的列表中的字典,如下所示:
responses = {'1': {'responses': [{1st dict to be retrieved}, {2nd dict to be retrieved}, ...]},
'2': {'responses': [{1st dict to be retrieved}, {2nd dict to be retrieved}, ...]}, ...}
我需要取消嵌套并将这些嵌套的 dict 转换为数据帧,因此最终结果应如下所示:
responses = {'1': df1,
'2': df2, ...}
为了实现这一点,我构建了一个 for 循环,以便遍历第一级的所有键。在该循环中,我使用另一个循环将嵌套字典中的每个项目提取到一个名为 responses_df 的新空列表中:
responses_dict = {}
for key in responses.keys():
for item in responses[key]['responses']:
responses_dict[key].update(item)
但是,我得到:
KeyError: '1'
如果我在字典中的一个键上单独使用内部循环,它就可以工作,但这并没有真正帮助我,因为数据来自 API,并且必须在生产中每隔几分钟动态更新一次。
将结果转换为数据帧的 nex 循环如下所示:
for key in responses_dict:
responses_df[key] = pd.DataFrame.from_dict(responses_dict[key], orient='index')
但由于第一次操作失败,我还没有尝试过。
【问题讨论】:
标签: python python-3.x for-loop