【问题标题】:GET request with chunks in Python在 Python 中使用块获取请求
【发布时间】:2018-06-22 12:41:23
【问题描述】:
我正在使用 requests 库从 API 获取数据,如下所示:
import requests
url = "Some String"
headers = {
'Authorization':"Some Token"}
response = requests.request("GET", url, headers=headers)
但我要获取的文件非常大,所以我收到时间异常错误。如何在请求中使用块获取它?
谢谢!
【问题讨论】:
-
-
-
-
-
你看过这个SO post吗?我认为使用stream=True 参数可能会有所帮助。
标签:
python
python-requests
chunks
【解决方案1】:
import requests
import datetime
import pandas as pd
url = "some URL"
headers = {
'Authorization':"Some Token"}
start_date = datetime.datetime(2018, 6, 1)
end_date = datetime.datetime.now()
temp_end_date = start_date + datetime.timedelta(days=7)
output = dict()
while temp_end_date <= end_date:
temp_url = url % (start_date.timestamp()*1000, temp_end_date.timestamp()*1000)
response = requests.get(temp_url, headers=headers)
temp_data = response.json()
for key, value in temp_data.items():
output_arr = output.get(key, [])
output_arr.extend(value)
output[key] = output_arr
start_date = temp_end_date + datetime.timedelta(seconds=1)
temp_end_date += datetime.timedelta(days=7)
data=output
df=pd.DataFrame(data)
df.head()