我尝试在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链接到响应?
任何帮助都将不胜感激,我完全陷入困境!提前谢谢!
答案 0 :(得分:0)
您可以定义默认参数,例如:
def process_response(page_id, request_id=DEFAULT_1, response=DEFAULT_2, exception=DEFAULT_3):
print response
然后处理收到默认参数时会发生什么。除了
之外,还有其他一些方法可以解决这个问题