analytics.reports (). batchGet ОШИБКА, когда я пытаюсь передать переменную в «dimensionName» в «dimensionFilterClauses» - PullRequest
0 голосов
/ 06 февраля 2020

Мой код указан ниже:

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()

Ошибка указана ниже:

в get_report (analytics, job_slug) 10 'метрик': [{'expression': i} для i в МЕТРИКАХ], 11 'измерений': [{'name': j} для j в РАЗМЕРАХ], ---> 12 'dimensionFilterClauses': [{"filters": [{'dimensionName': DIMENSIONS, 'operator': "IN_LIST", "выражения": [k для k в job_page_url]}]}] 13}] 14}

HttpError: https://analyticsreporting.googleapis.com/v4/reports: batchGet? Alt = json возвратил «Недопустимая JSON полезная нагрузка получена. Неизвестное имя« dimensionName »в« report_requests [0] .dimension_filter_clauses [0] .filters [0] »: поле Proto имеет значение не повторяется, не может начать список. Подробности: "[{'@type': 'type.googleapis.com/google.rpc.BadRequest', 'fieldViolations': [{'field': 'report_requests [0] .dimension_filter_clauses [0] .filters [ 0], описание . '}]}] ">

Я могу успешно извлечь данные из GA, если ' dimensionName ': DIMENSIONS заменить на ' dimensionName ': 'га: pagePath' .

Мне интересно, что здесь происходит, так как оба имеют одно и то же значение, верно?

1 Ответ

0 голосов
/ 07 февраля 2020

Только что обнаружил проблему! 'dimensionName' не принимает список, поэтому должен передаваться как одна строка

...