提问者:小点点

analytics.reports(). batch当我试图将变量传递到“维度筛选子句”中的“维度名称”时,获取错误


我的代码如下:

DIMENSIONS = ['ga:pagePath']

def get_report(analytics,job_slug):
    job_page_url = create_page_path_url(job_slug)

    return analytics.reports().batchGet(
      body={
        'reportRequests': [
        {
          'viewId': VIEW_ID,
          'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
          'metrics': [{'expression':i} for i in METRICS],
          'dimensions': [{'name':j} for j in DIMENSIONS],
          'dimensionFilterClauses':[{"filters": [{'dimensionName': DIMENSIONS, 'operator': "IN_LIST", "expressions":[k for k in job_page_url]}]}]
        }]
      }
    ).execute()

错误说明如下:

HttpError:https://analyticsreporting.googleapis.com/v4/reports:batchGet?alt=json返回“接收到无效的JSON有效负载。在“report_requests[0]。dimension_filter_子句[0]。filters[0]”处的未知名称“dimensionName”:Proto字段未重复,无法启动列表。“。详细信息:“[{@type':'type.googleapis.com/google.rpc.BadRequest”,“fieldViolations':[{'field':'报告\u请求[0]。维度\u筛选\u子句[0]。筛选[0],'description':'接收到的JSON有效负载无效。在报告\u请求[0]处的未知名称“dimensionName”。维度\u筛选\u子句[0]。筛选[0]\':原型字段不重复,无法启动列表。}]}]"

我能够成功地从GA拉数据,如果'维数名称':维数替换为'维数名称':'ga: pagePath'。

我想知道这里发生了什么,因为两者是同一个意思,对吗?


共1个答案

匿名用户

才发现问题所在!维度名称不接受列表,因此必须作为单个字符串传入