API调用,而循环不做所有的cs行

2024-04-30 02:51:51 发布

您现在位置:Python中文网/ 问答频道 /正文

而循环在停止之前并不发送所有的行参数,因此在第二次传递之后完成,有时直接在第一次传递之后完成

我试过减少步数,但差别不大

import requests
import rek #request script
import time
import pandas as pd
dfbig= pd.read_csv ('C:\\Users\\libraries2.csv')



step = 19
init = 0; final = init + step
while (final<= dfbig.shape[0]):
    df = dfbig.iloc [ init : final ]
    rek.req (df , init, final) 
    init = final
    final = init + step
    time.sleep (60)

它只是在完成所有csv行之前停止


Tags: csvimportdf参数timeinitrequeststep
1条回答
网友
1楼 · 发布于 2024-04-30 02:51:51

您的代码在循环结束时递增final。在第二次迭代中final超过dfbig.shape[0](即:19+19+19<;=43为假),从而结束循环。这会产生跳过最后5行的效果

解决方法:

step = 19
init = 0
final = init + step
while (init <= dfbig.shape[0]):
    df = dfbig.iloc[init:final]
    rek.req (df , init, final) 
    init = final
    final = init + step

在这个chunking idea的基础上,您可以这样做来简化:

rows = dfbig.shape[0]
for i in range(0, rows, step):
    df = dfbig.iloc[i:i + step]
    rek.req(df, i, i + step) 

相关问题 更多 >