Python 如何从API收集最大数量的记录?

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': '

我是新来的。现在我正在使用下面的代码来接收数据。最后,我制作了一个数据帧,并将其与多个其他数据帧连接起来,最终将其导出到MySQL。然而,它只返回250条记录,当我在Postman中运行相同的GET查询并进行计数时,我可以看到例如有6500条记录

这是我的代码:

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条记录。我可以用
下一个链接
做些什么吗?