我有一个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, start_date, start_date, 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, start_date, sessions_writer, connection_error_count, pageToken)
            else:
                raise
        except ConnectionResetError:
            connection_error_count += 1
            time.sleep(10)
            if connection_error_count > 2:
                raise
            else:
                run_query(hour_in_dim, start_date, sessions_writer, connection_error_count, 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']
Unbound Local Error来自底部的第二行,在此处我将点击量结果称为“流量结果”,并尝试将其分配给Dimensions_ga变量。

最佳答案

我相信问题是我在使用递归而不是循环。我使用了此处提供的示例代码:
https://developers.google.com/analytics/devguides/reporting/core/v3/errors
还将python 3的“HttpError,error:除外”更改为“HttpError异常为错误”。
由于无法手动重现错误,因此不确定测试此方法的最佳方法。

关于python - Google Analytics(分析)Python API调用导致UnboundLocalError,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/63361653/

10-16 22:11
查看更多