我的问题是我需要从多个请求中获取多个 json 响应,然后将这些请求连接到一个 csv 文件中。我使用 pd.concat 的外连接,但不是保留数据帧中的列,而是将所有内容放入一个单一列中。有办法解决这个问题吗?
这是我的代码:
data = []
full_df = pd.DataFrame(data)
uuid_counter = 0
for uuid in uuid_df['uuid']:
headers = {'accept': 'application/json', 'api-key': APIKEY}
response = re.get(
f'URL/{uuid}',
headers=headers)
json_response = response.json()
df = pd.json_normalize(json_response)
full_df = pd.concat([full_df, df])
full_df.to_csv('research.csv')
uuid_counter += 1
也许你应该将 df 定义为:
full_df = pd.DataFrame(data)
您的第一个连接是将一个形成的数据框(df)与一个空的数据框一起放置。我没有要测试的 json 数据,但我怀疑这可能是问题所在。
换句话说,在首次声明时提供 full_df 的列定义。