Мой код указан ниже:
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' .
Мне интересно, что здесь происходит, так как оба имеют одно и то же значение, верно?