如何在使用gspread和python时链接谷歌帐户?

时间:2015-05-09 14:48:34

标签: python google-sheets google-account gspread

我正在尝试使用gpread和python来编辑谷歌电子表格。我遵循了本教程:http://gspread.readthedocs.org/en/latest/oauth2.html 当我运行我的代码时,它说没有名为oauth2client.client的模块。我是否需要安装其他东西才能使其正常工作?

更新 这是我的代码:

import json
import gspread
from oauth2client.client import SignedJwtAssertionCredentials

json_key = json.load(open('GraduationCash-c4b4c0667c75.json'))
scope = ['https://spreadsheets.google.com/feeds']

credentials = SignedJwtAssertionCredentials(json_key['client_email'], json_key['private_key'], scope)
gc = gspread.authorize(credentials)

wks = gc.open("Where is the money Lebowski?").sheet1

raw_input()

另外我应该提到我在Windows 8上,所以那些命令不起作用。它仍然说没有加密库可用

2 个答案:

答案 0 :(得分:2)

是的,您必须安装OAuth客户端library

$ pip install --upgrade oauth2client

当然,您总是可以从源代码安装,也很好:

$ git clone https://github.com/google/oauth2client 
$ cd oauth2client 
$ python setup.py install

注意 如果您收到“ No crypto library available ”之类的错误:

$ apt-get install python-openssl 

$ pip install PyOpenSSL

答案 1 :(得分:2)

我没有使用SignedJwtAssertionCredentials,而是使用了GoogleCredentials。

我在下面的代码中取得了成功。我必须在Google Developer网站here上创建一个帐户。从那里,转到API Manager> Google Apps API>启动API,然后启用API。然后选择凭据>新证书>服务帐户密钥。此时,将密钥下载为JSON并将其存储在安全的地方。复制JSON文件中的电子邮件地址,并将其添加到要访问的工作表中。

import gspread
from oauth2client.client import GoogleCredentials

credentials = GoogleCredentials.get_application_default()
credentials = credentials.create_scoped(['https://spreadsheets.google.com/feeds'])
gs = gspread.authorize(credentials)
sheet = gs.open('Testing').worksheet('Sheet1')

list_of_lists = sheet.get_all_values()

print(list_of_lists)