我使用requests模块访问端点并返回一个JSON响应:
response = requests.get(endpoint, auth=(user_name, api_key)).json()答复如下:
{'SalesInfoStatus': {'next_offset': 15,
'sales': [{'saSalesID': '761S-1666031549-adhoc-0:0',
'identifier': '761',
'origin': 'New York',
'destination': 'London',
'filed_time': {'epoch': 1666033349,
'time': '15:02',
'date': '10/19/2022',
'localtime': 1666018949},
'actual_time': {'epoch': 1666033349,
'time': '15:02',
'date': '10/19/2022',
'localtime': 1666018949},
'inbound_saSalesID': '761S-1666029229-adhoc-0:0'},
{'saSalesID': '762S-1666031549-adhoc-0:0',
'identifier': '762',
'origin': 'New York',
'destination': 'London',
'filed_time': {'epoch': 1666033349,
'time': '15:02',
'date': '10/17/2022',
'localtime': 1666018949},
'actual_time': {'epoch': 1666033349,
'time': '15:02',
'date': '10/17/2022',
'localtime': 1666018949},
'inbound_saSalesID': '762S-1666029229-adhoc-0:0'},
{'saSalesID': '765S-1666031549-adhoc-0:0',
'identifier': '765',
'origin': 'Paris',
'destination': 'Tokyo',
'filed_time': {'epoch': 1666033349,
'time': '15:02',
'date': '10/15/2022',
'localtime': 1666018949},
'actual_time': {'epoch': 1666033349,
'time': '15:02',
'date': '10/15/2022',
'localtime': 1666018949},
'inbound_saSalesID': '765S-1666029229-adhoc-0:0'},
{'saSalesID': '767S-1666031549-adhoc-0:0',
'identifier': '767',
'origin': 'Los Angeles',
'destination': 'Sydney',
'filed_time': {'epoch': 1666033349,
'time': '15:02',
'date': '10/13/2022',
'localtime': 1666018949},
'actual_time': {'epoch': 1666033349,
'time': '15:02',
'date': '10/13/2022',
'localtime': 1666018949},
'inbound_saSalesID': '767S-1666029229-adhoc-0:0'}
]}}当我给type(response)打电话时,我得到了dict。
我想从这个JSON构建一个包含date、origin、destination和identifier字段的Pandas。
生成的dataframe如下所示:
date origin destination identifier
10/19/22 New York London 761
10/17/22 New York London 762
10/15/22 Paris Tokyo 765
10/13/22 Los Angeles Sydney 767我使用的方法如下:
df = pd.json_normalize(response)但是,这将返回一个包含嵌套JSON的列的dataframe:
SalesInfoStatus
sales [{'saSalesID': '761S-1666031549-adhoc-0:0',...
next_offset 15 如何将date、origin、destination和identifier字段划分为它们自己的列?
谢谢!
发布于 2022-10-20 14:57:49
您可以在pd.json_normalize键的列表值上使用sales
df = pd.json_normalize(response['SalesInfoStatus']['sales'])[['filed_time.date', 'origin', 'destination', 'identifier']]print(df)
filed_time.date origin destination identifier
0 10/19/2022 New York London 761
1 10/17/2022 New York London 762
2 10/15/2022 Paris Tokyo 765
3 10/13/2022 Los Angeles Sydney 767https://stackoverflow.com/questions/74141942
复制相似问题