【发布时间】:2020-01-22 19:36:00
【问题描述】:
如何在 Python 中将包含 dict 的嵌套列表转换为数据框中的额外列?
我从 API 接收到字典中的信息,
{'orders':
[
{ 'orderId': '2838168630',
'dateTimeOrderPlaced': '2020-01-22T18:37:29+01:00',
'orderItems': [{ 'orderItemId': 'BFC0000361764421',
'ean': '234234234234234',
'cancelRequest': False,
'quantity': 1}
]},
{ 'orderId': '2708182540',
'dateTimeOrderPlaced': '2020-01-22T17:45:36+01:00',
'orderItems': [{ 'orderItemId': 'BFC0000361749496',
'ean': '234234234234234',
'cancelRequest': False,
'quantity': 3}
]},
{ 'orderId': '2490844970',
'dateTimeOrderPlaced': '2019-08-17T14:21:46+02:00',
'orderItems': [{ 'orderItemId': 'BFC0000287505870',
'ean': '234234234234234',
'cancelRequest': True,
'quantity': 1}
]}
通过这样做,我设法将其变成了一个简单的数据框:
pd.DataFrame(recieved_data.get('orders'))
输出:
orderId date oderItems
1 1-12 [{orderItemId: 'dfs13', 'ean': '34234'}]
2 etc.
...
我想要这样的东西
orderId date oderItemId ean
1 1-12 dfs13 34234
2 etc.
...
我已经尝试使用 Iloc 单独列出 orderItems 列,然后将其转换为列表,以便我可以再次尝试提取值。但是,我仍然得到一个列表,我需要从中提取另一个列表,其中包含字典。
【问题讨论】:
-
为什么不将其全部取消嵌套,然后再将其放入数据框中?
-
我在早期也尝试过使用 json_normalize 方法,但是当我尝试使用的数据是 dict 时收到错误消息,因此我继续尝试使用 dicts 查找方法。也许我做错了什么
-
请按收到的数据发布。这应该可以解决它:stackoverflow.com/questions/55679381/…