[英]split json into multi columns dynamically python
我正在尝试提取 API 响应并在 SQL 中制作表格或在 python 中制作数据框。
响应是这样的:
{'posts': [
{'ID': '15',
'Details': 'Hotel:Campsite;Message:Reservation inquiries '},
{'ID': '150',
'Details': 'Page:45-discount-y;PageLink:https://xx.xx.net/SS/45-discount-y/?lang=en&source=Call%20Center'},
{'ID': '13',
'Details': ''}]}
详细信息下有很多键或列。 所以我也想要一种动态的方式将细节分成多列
所需的 output:
ID | 细节 | 酒店 | 信息 | 页 | 页面链接 |
---|---|---|---|---|---|
15 | 酒店:营地;留言:预订查询 | 营地 | 预订查询 | NULL | NULL |
150 | Page:45-discount-y;PageLink: https://xx.xx.net/SS/45-discount-y/| NULL | NULL | 45-折扣-y | https://xx.xx.net/SS/45-discount-y/| | |
13 | NULL | NULL | NULL | NULL | NULL |
尝试:
dct = {'posts': [
{'ID': '15','Details': 'Hotel:Campsite;Message:Reservation inquiries '},
{'ID': '150','Details': 'Page:45-discount-y;PageLink:https://xx.xx.net/SS/45-discount-y/?lang=en&source=Call%20Center'},
{'ID': '13','Details': ''}
]}
all_data = []
for p in dct['posts']:
all_data.append({'ID':p['ID'], 'Details':p['Details'], **dict(v.split(':', maxsplit=1) for v in p['Details'].split(';') if v)})
df = pd.DataFrame(all_data)
print(df.to_markdown())
印刷:
ID | 细节 | 酒店 | 信息 | 页 | 页面链接 | |
---|---|---|---|---|---|---|
0 | 15 | 酒店:营地;留言:预订查询 | 营地 | 预订查询 | 楠 | 楠 |
1个 | 150 | Page:45-discount-y;PageLink: https://xx.xx.net/SS/45-discount-y/?lang=en&source=Call%20Center | 楠 | 楠 | 45-折扣-y | https://xx.xx.net/SS/45-discount-y/?lang=zh&source=Call%20Center |
2个 | 13 | 楠 | 楠 | 楠 | 楠 |
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.