Python while循环令牌未更新

2024-10-01 02:21:52 发布

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

我正在探索azure管理API。ADF监视器管道一次仅返回100条记录。所以我创建了一个while循环,但由于某些原因,不确定是什么,无法获得下一个令牌

ct = d.get('continuationToken','')
c = 1
while ct!='':
    req_body = self.getDataBody(ct)
    data = self.getResponse(data_url,data_headers,req_body)
    nct = self.getContinuationToken(data,c)
    c = c+1
    print(c)
    if ct == nct:
        print(ct)
        print(nct)
        print('duplicate token')
        break
    ct = nct
    if ct == '':
        break

在下一次迭代中,下一个令牌没有得到更新

更新:

遵循上述代码使用的函数

def getDataBody(self,ct):
    start_date = datetime.now().strftime("%Y-%m-%d")
    end_date = (datetime.now() + timedelta(days=1)).strftime("%Y-%m-%d")
    data_body = {'lastUpdatedAfter': start_date, 'lastUpdatedBefore': end_date}
    if ct!='':
        data_body['continuationToken'] = ct
    return data_body


def getResponse(self,url,headers,body):
    data = requests.post(url,headers=headers,data=body)
    return data.text


def getContinuationToken(self,data,c):
    d = json.loads(data)
    with open(f'data/{c}.json','w') as f:
        json.dump(d,f)
    return d.get('continuationToken','')

Tags: selfjsonurldatadatereturnifdef