如何解决Google Analytics API的Namespace无property_uri属性错误
报错根源
抛出的AttributeError由两处参数解析配置错误直接导致:
- 全局定义的包含
property_uri、start_date、end_date三个业务入参的解析器,未被绑定到initialize_analyticsreporting函数内部的解析器对象上,函数内的解析器仅挂载了oauth工具自带的通用参数解析器 - 调用
parse_args方法时传入空列表,强制跳过所有命令行入参的解析流程,哪怕绑定了业务参数解析器,也无法读取到脚本运行时传入的实际值
新增CSV生成逻辑前代码运行正常,是因为流程从未访问flags对象上的业务属性,一旦执行到读取
flags.property_uri的逻辑,错误就会触发。
与Search Console API的实现差异
之前调用Search Console API的初始化方法时,框架自动完成两项关键操作:
- 将全局定义的业务参数解析器作为父级解析器挂载到内部解析实例上
- 直接读取传入的
argv参数列表完成实际命令行入参解析,不会传入空列表跳过解析流程
对应原错误代码段:
parser = argparse.ArgumentParser( formatter_class=argparse.RawDescriptionHelpFormatter, parents=[tools.argparser]) flags = parser.parse_args([])
修复步骤
- 将全局定义的业务参数解析器
argparser加入父解析器绑定列表 - 替换空的解析入参列表,传入函数接收的
argv,并对列表做切片处理排除第一个元素(即脚本自身的文件名),确保实际业务参数能被正常解析
修复后的对应代码参考:
parser = argparse.ArgumentParser( formatter_class=argparse.RawDescriptionHelpFormatter, parents=[argparser, tools.argparser]) flags = parser.parse_args(argv[1:])
内容的提问来源于stack exchange,提问作者rbradbury
相关产品推荐
相关产品推荐

