【发布时间】:2021-08-02 05:14:18
【问题描述】:
我正在探索 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','')
【问题讨论】:
-
您是否尝试过查看循环中的响应是否不同?也许你总是得到相同的回应。
-
如果通过传递更新的延续令牌手动多次运行它会有所不同,但在循环中令牌保持不变
-
您是否尝试过编写一个自定义虚拟 getContinuationToken 始终返回不同的内容以查看问题是否会消失?
-
是的,对于其他事情,逻辑是有效的
标签: python azure-management-api