【发布时间】:2021-11-06 07:13:18
【问题描述】:
我有一个字典列表l1,如下所示:
[{'A1': 'string',
'B1': {'ba': 'string',
'bb': 'string',
'bc': 'string',
'bd': 'string',
'be': 'string'},
'C1': {'ca': 'string',
'cb': [[[123,123],[123,123]]]},
'D1': 'string'},
...]
某些字典(l1 元素)可能缺少某些键,例如,l1 的第二个列表元素可能没有 'bc':''string' 键/值对.
我需要将以下顶部和嵌套的键/值元素提取到数据框中,如下所示:
bc bd cb D1
string string [[[123,123],[123,123]]] string
N/A string [[[123,123],[123,123]]] string
...
string N/A [[[123,123],[123,123]]] string
我的代码如下:
temp_df = pd.DataFrame(columns = ['bc','bd','cb','D1']
for i in l1:
temp_df = temp_df.append({'bc': i.get(['B1']['bc'],'N/A'),
'bd': i.get(['B1']['bd'],'N/A'),
'cb': i.get(['C1']['cb'],'N/A'),
'D1': i.get(['D1'],'N/A')},
ignore_index=True)
我得到的错误如下:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-113-543c6addad42> in <module>
1 for i in l1:
----> 2 temp_df = temp_df.append({'bc': i.get(['B1']['bc'],'N/A'),
3 'bd': i.get(['B1']['bd'],'N/A'),
4 'C1': i.get(['C1']['cb'],'N/A'),
5 'D1': i.get(['D1'],'N/A')},
TypeError: list indices must be integers or slices, not str
我做错了什么?
【问题讨论】:
标签: python pandas list dictionary nested