Python读取API返回CSV链接生成数据表的问题求助
解决方法
你的错误原因是直接将requests的Response对象传给了pd.read_csv,但这个方法不接受该类型参数。API返回的是包含CSV下载链接的JSON数据,而非直接返回CSV内容,正确流程是先提取CSV链接,再用该链接读取数据。
修正步骤及代码
- 调用API后,解析响应的JSON数据,提取其中的CSV URL
- 将CSV URL传入
pd.read_csv,pandas会自动请求该链接并读取CSV内容
import requests import pandas as pd # API配置 api_url = "https://api.squeezely.tech/v1/reporting/events" request_fields = { "from": "2020-01-01", "to": "2026-01-01", "custom_fields": "no" } auth_headers = { "X-AUTH-ACCOUNT": "our account", "X-AUTH-APIKEY": "our key", "Content-Type": "application/json" } # 获取CSV下载链接 api_response = requests.post(api_url, json=request_fields, headers=auth_headers, allow_redirects=False) response_dict = api_response.json() # 验证请求成功后读取CSV if response_dict.get("success"): csv_download_url = response_dict["url"] # pandas直接读取远程CSV df = pd.read_csv(csv_download_url) print(df) else: print("API请求未成功,无法获取CSV链接")
额外优化说明
- 原代码中
json=json.dumps(fields)属于冗余操作,requests.post的json参数会自动将字典序列化为JSON格式,无需手动处理 allow_redirects是requests.post的请求参数,而非请求头字段,已移至正确位置
内容的提问来源于stack exchange,提问作者Loes__95_
相关产品推荐
相关产品推荐

