【发布时间】:2015-05-16 21:03:57
【问题描述】:
我正在尝试在 Python 中执行 Google Analytics 批处理请求。
batch.add(service.data().ga().get(
ids=ids,
start_date=start_date,
end_date=end_date,
metrics=metrics,
dimensions=dimensions,
segment=segment,
sort=sort), callback=process_response)
来自文档 (https://developers.google.com/api-client-library/python/guide/batch):
add() 方法还允许您为每个请求提供一个 request_id 参数。这些 ID 提供给回调。如果您不提供,图书馆会为您创建一个。每个 API 请求的 ID 必须是唯一的,否则 add() 会引发异常。
所以如果我像这样创建一个函数 process_response:
def process_response(request_id, response, exception):
print response
我在这些变量中得到回调结果。这些变量由 Google Analytics 库自动生成,并且运行良好。但是,我想向 process_response 函数添加另一个参数 page_id,以便将 page_id 与回调的结果链接起来。但是,如果我这样做:
def process_response(page_id, request_id, response, exception):
print response
然后:
callback=process_response(page_id)
我得到一个错误:
TypeError: process_response() takes exactly 4 arguments (1 given)
所以归结为:我想调用一个接受 4 个参数同时只提供 1 个参数 (page_id) 的函数,因此其他 3 个参数可以由 Google Analytics 库自动生成。这可能吗?还是有另一种方法可以将 page_id 链接到响应?
任何帮助将不胜感激,我完全陷入困境!提前致谢!
【问题讨论】:
-
问题是您试图传递来自
process_response的响应,而不是函数本身,如callback。你应该很高兴你得到了一个错误,否则你可能会很困惑!
标签: python python-2.7 google-analytics batch-processing google-analytics-api