【发布时间】:2019-10-10 03:46:43
【问题描述】:
我正在尝试在 Python 脚本中实现 Amplitude 的导出 API。我一直在使用 requests 库,但我不知道如何指定文件名来保存来自调用的响应。此 API 要求保存为指定的 .zip 文件 (>> yourfilename.zip),因为这是返回响应的格式。这是来自 API 网站的示例 cURL 调用,我正在尝试将其转换为 Python:
curl -u API_Key:Secret_Key 'https://amplitude.com/api/2/export?start=start_date&end=end_date' >> yourfilename.zip
当我在终端中调用它时,它可以完美运行并将“yourfilename.zip”保存到我的本地。但是,以下 Python 代码不起作用:
import requests
params = (
('start', START_DATE),
('end', END_DATE),
)
auth = (
('API_Key', API_KEY),
('Secret_Key', SECRET_KEY),
)
response = requests.get('https://amplitude.com/api/2/export', params=params, auth=auth, stream=True)
requests.get() 调用无法执行并返回 403 响应,因为我不知道如何指定要保存的 .zip 文件,就像 API 网站上的示例 cURL 调用一样。非常感谢任何帮助,谢谢。
【问题讨论】:
-
403 forbidden看来您一开始没有收到回复。如果你这样做了,你可以简单地将r.contents写入文件.zipif r.status_code is 200: with open(f'file.zip', 'wb') as f: f.write(response.content)
标签: python api python-requests zip zipfile