我试图运行这个非常基本的代码(在http://pandas.pydata.org/pandas-docs/stable/remote_data.html#remote-data-ga):
import pandas.io.ga as ga
ga.read_ga(
account_id = "ZZZZZZZZZZ",
profile_id = "YYYYYYYYYY",
property_id = "XXXXXXXXX",
metrics = ['users', 'pageviews'],
dimensions = ['dayOfWeek'],
start_date = "2014-01-01",
end_date = "2014-08-01")
我得到以下结果:
Traceback (most recent call last):
File "Untitled.py", line 14, in <module>
end_date = "2015-01-01"
File "C:UsersgwaldmanAppDataLocalContinuumAnacondalibsitepackagespandasioga.py", line 105, in read_gareader = GAnalytics(**reader_kwds)
File "C:UsersgwaldmanAppDataLocalContinuumAnacondalibsitepackagespandasioga.py", line 174, in __init__self._service = self._init_service(secrets)
File "C:UsersgwaldmanAppDataLocalContinuumAnacondalibsitepackagespandasioga.py", line 186, in _init_servicehttp = self.authenticate(secrets)
File "C:UsersgwaldmanAppDataLocalContinuumAnacondalibsitepackagespandasioga.py", line 146, in authenticate return auth.authenticate(flow, self.token_store)
File "C:UsersgwaldmanAppDataLocalContinuumAnacondalibsitepackagespandasioauth.py", line 108, in authenticate credentials = tools.run(flow, storage)
AttributeError: 'module' object has no attribute 'run'
我遵循了使用Google api进行身份验证的说明,并且已经能够成功地做到这一点,但似乎无法让它与pandas一起工作。我下载了一个client_secrets文件,并将其放在与pandas.io.ga
相同的文件夹中。我也在运行蟒蛇Python。我已经搜索并尝试了大量的东西,但似乎连认证都没有。
正如@Matt所建议的,要么向Pandas的所有者提交一张罚单,将(目前)Pandas/io/auth.py的108行从run()
更改为run_flow()
,要么自己修复并提交PR。
对于其他遇到此错误的开发人员:如果您有最新版本(截至2016年2月)的Google api客户端库For Python,只需将从tools.run()
重命名为tools.run_flow()
,您应该很好。关于这一变化的更多信息,请参阅我在2015年年中撰写的PSA(公共服务公告)博客文章,但会定期更新。
升级客户端库的最快方法是:pip install -U google-api-python-client # or pip3 for 3.x