Python 如何从API收集最大数量的记录?
我是新来的。现在我正在使用下面的代码来接收数据。最后,我制作了一个数据帧,并将其与多个其他数据帧连接起来,最终将其导出到MySQL。然而,它只返回250条记录,当我在Postman中运行相同的GET查询并进行计数时,我可以看到例如有6500条记录 这是我的代码:Python 如何从API收集最大数量的记录?,python,api,dataframe,python-requests,Python,Api,Dataframe,Python Requests,我是新来的。现在我正在使用下面的代码来接收数据。最后,我制作了一个数据帧,并将其与多个其他数据帧连接起来,最终将其导出到MySQL。然而,它只返回250条记录,当我在Postman中运行相同的GET查询并进行计数时,我可以看到例如有6500条记录 这是我的代码: proxies = {'https': '***.***.***.com:***'} acces_token = "this_is_my_token" headers = {'Authorization': '
proxies = {'https': '***.***.***.com:***'}
acces_token = "this_is_my_token"
headers = {'Authorization': 'Bearer ' + acces_token}
mod_date = 'ModifiedOn gt 2010-01-01'
params1 = {'$filter': mod_date, '$select': 'Field1, Field2}
response1 = requests.get('https://***-***-***.***.com/odata/***', headers=headers, params=params1, proxies=proxies)
q1 = response1.json()
dictio1 = q1['value']
df1 = pd.DataFrame(dictio1)
print(df1)
0 - Field 1 - Field 2
1 - x - x
. - x - x
. - x - x
250 - x - x
0 - Field 1 - Field 2
1 - x - x
. - x - x
. - x - x
6500 - x - x
输出为:
proxies = {'https': '***.***.***.com:***'}
acces_token = "this_is_my_token"
headers = {'Authorization': 'Bearer ' + acces_token}
mod_date = 'ModifiedOn gt 2010-01-01'
params1 = {'$filter': mod_date, '$select': 'Field1, Field2}
response1 = requests.get('https://***-***-***.***.com/odata/***', headers=headers, params=params1, proxies=proxies)
q1 = response1.json()
dictio1 = q1['value']
df1 = pd.DataFrame(dictio1)
print(df1)
0 - Field 1 - Field 2
1 - x - x
. - x - x
. - x - x
250 - x - x
0 - Field 1 - Field 2
1 - x - x
. - x - x
. - x - x
6500 - x - x
我的目标是为收集所有6500条记录的multipleget语句构建多个循环。之后,我将合并这些数据帧并将它们导出到MySQL
预期输出为:
proxies = {'https': '***.***.***.com:***'}
acces_token = "this_is_my_token"
headers = {'Authorization': 'Bearer ' + acces_token}
mod_date = 'ModifiedOn gt 2010-01-01'
params1 = {'$filter': mod_date, '$select': 'Field1, Field2}
response1 = requests.get('https://***-***-***.***.com/odata/***', headers=headers, params=params1, proxies=proxies)
q1 = response1.json()
dictio1 = q1['value']
df1 = pd.DataFrame(dictio1)
print(df1)
0 - Field 1 - Field 2
1 - x - x
. - x - x
. - x - x
250 - x - x
0 - Field 1 - Field 2
1 - x - x
. - x - x
. - x - x
6500 - x - x
您可以尝试在get请求中使用参数
stream=True
。
如果在发出请求时将stream设置为True,则请求无法释放回池的连接,除非您使用所有数据或调用响应。关闭
r = requests.get(..., stream=True)
让我知道这是否有帮助。您可以尝试在get请求中使用参数stream=True
。
如果在发出请求时将stream设置为True,则请求无法释放回池的连接,除非您使用所有数据或调用响应。关闭
r = requests.get(..., stream=True)
如果有帮助,请告诉我。你好,欧文。感谢您的回复,我添加了stream=True
,但仍然获得了前250条记录。我能用下一个链接做些什么吗?你好,欧文。感谢您的回复,我添加了stream=True
,但仍然获得了前250条记录。我可以用下一个链接做些什么吗?