使用python脚本将Google Sheet下载为CSV

时间:2018-08-15 16:01:29

标签: python python-2.7 google-sheets google-sheets-api

我正在通过此链接在树莓派pi3上使用python脚本-将我的Google电子邮件地址和Google工作表编号插入脚本:

https://gist.github.com/Thuruv/dc0e2f781b8e095b9981f265647b8304

然后在运行脚本时输入我的Google密码,但出现以下错误:

Traceback (most recent call last):
File "Googlespreadsheets.py", line 53, in <module>
csv_file = gs.download(ss)
File "Googlespreadsheets.py", line 34, in download
"Authorization": "GoogleLogin auth=" + self.get_auth_token(),
File "Googlespreadsheets.py", line 29, in get_auth_token
return self._get_auth_token(self.email, self.password, source, 
service="wise")
File "Googlespreadsheets.py", line 25, in _get_auth_token
return re.findall(r"Auth=(.*)", urllib2.urlopen(req).read())[0]
File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 435, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 548, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 473, in error
return self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 556, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 404: Not Found

2 个答案:

答案 0 :(得分:1)

导航到代码中的URL会直接链接here,显示来自Google的警告:

  

重要提示::自2012年4月20日起,ClientLogin已正式弃用,现在不再可用。对ClientLogin的请求将失败,并显示HTTP 404响应。我们建议您尽快迁移到OAuth 2.0。

如您的尝试所示,此代码将失败并显示404响应。尝试将这段代码移至OAuth2

答案 1 :(得分:1)

我已经实现了一个开源 python 命令行实用程序 https://pypi.org/project/google-sheets-to-csv/,只要您安装了 python3,它就应该可以在 pi3 上运行。如果您想集成到更大的应用程序中,您应该能够将其用作第三方 API。

Linux 上的基本用法:

pip install google-sheets-to-csv
mkdir out
gs-to-csv <spreadsheet ID> <sheet selector (regex)> out/

我将在每张纸上获得一个与给定正则表达式选择器匹配的 csv 文件。

如果您的 pi3 上安装了浏览器,则首次连接时,系统会要求您允许对安装在 pi3 上的 Python 应用程序的所有电子表格进行读取访问。如果您使用 pi3 作为没有 GUI 的服务器,您可以在您的计算机上使用它并复制生成的令牌,但我建议在这种情况下使用谷歌服务帐户,并允许访问您要下载到该谷歌帐户服务的电子表格。