无法使用Python遍历分页的API响应

无法使用Python遍历分页的API响应,第1张

无法使用Python遍历分页的API响应

问题似乎是:

  • 您在第一个电话中就获得了补偿,但对此电话返回的实际公司数据不做任何事情。
  • 然后,您可以在while循环中使用相同的偏移量;您永远不会在后续通话中使用新的。这就是为什么您每次都会得到相同的公司的原因。

我认为此代码

get_companies()
适合您。显然,我无法对其进行测试,但希望可以:

def get_companies():        create_get_recent_companies_call = "https://api.hubapi.com/companies/v2/companies/?hapikey={hapikey}".format(hapikey=wta_hubspot_api_key)        headers = {'content-type': 'application/json'}        create_get_recent_companies_response = requests.get(create_get_recent_companies_call, headers=headers)        if create_get_recent_companies_response.status_pre == 200: while True:     for i in create_get_recent_companies_response.json()[u'companies']:         companyName = i[u'properties'][u'name'][u'value']         print("{companyName}".format(companyName=companyName))     offset = create_get_recent_companies_response.json()[u'offset']     hasMore = create_get_recent_companies_response.json()[u'has-more']     if not hasMore:         break     else:         create_get_recent_companies_call = "https://api.hubapi.com/companies/v2/companies/?hapikey={hapikey}&offset={offset}".format(hapikey=wta_hubspot_api_key, offset=offset)         create_get_recent_companies_response = requests.get(create_get_recent_companies_call, headers=headers)        else: print("Something went wrong, check the supplied field values.n") print(json.dumps(create_get_recent_companies_response.json(), sort_keys=True, indent=4))

严格来说,不需要

else
after,
break
但与Python
Zen
保持一致:“显式优于隐式”

请注意,您只需要检查一次200响应代码,如果循环内出现问题,您将错过它。您可能应该将所有调用放入循环中,并每次都检查是否有正确的响应。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5631423.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存