如何解决Google Analytics Python API调用导致UnboundLocalError
我有一个Python脚本,每天都会尝试调用一次Google Analytics(分析)API,以获取数据。但是,在某些电话上,我显然什么也没收到。那或者我错误地处理了错误。这是我用来调用api的函数。
def run_query(hour_in_dim,start_date,sessions_writer,connection_error_count,pageToken=None):
# Try to run api request for one day. Wait 10 seconds if "service is currently unavailable."
try:
traffic_results = get_api_query(analytics,pageToken)
except HttpError as err:
if err.resp.status in [503]:
print("Sleeping,api service temporarily unavailable.")
time.sleep(10)
run_query(hour_in_dim,pageToken)
else:
raise
except ConnectionResetError:
connection_error_count += 1
time.sleep(10)
if connection_error_count > 2:
raise
else:
run_query(hour_in_dim,pageToken)
# TODO: solve random occurances of "UnboundLocalError: local variable 'traffic_results' referenced before assignment"
dimensions_ga = traffic_results['reports'][0]['columnHeader']['dimensions']
rows = traffic_results['reports'][0]['data']['rows']
“未绑定本地错误”来自底部的第二行,我称这为流量结果,并尝试将其分配给Dimensions_ga变量。
解决方法
我相信问题是我在使用递归而不是循环。我使用了此处提供的示例代码:
https://developers.google.com/analytics/devguides/reporting/core/v3/errors
还将python 3的“除HttpError,error:以外的错误”更改为“除HttpError以外的错误”。
由于无法手动再现错误,因此不确定测试此方法的最佳方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。