问题标签 [gspread]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1548 浏览

python - 'str' 不支持 oauth 的缓冲区接口 Python 3 错误

错误:

.encode()我尝试使用但gspread.authorize()不支持这种类型对字符串进行编码。这是 [documentation][1],显然没有多大帮助。我正在使用 Python 3.4。我认为文档代码仅适用于 3 之前的版本。

编辑:

回溯(最近一次通话最后一次):文件“C:\Users\sony\Desktop\Python\new.py”,第 9 行,凭据 = SignedJwtAssertionCredentials.from_json(json_key['client_email'], json_key['private_key'],范围)类型错误:from_json() 接受 2 个位置参数,但给出了 4 个 [在 1.0 秒内完成,退出代码为 1]

[1]: http: //gspread.readthedocs.org/en/latest/oauth2.html

回溯(最后一次调用):文件“C:\Users\sony\Desktop\Python\new.py”,第 8 行,凭据 = SignedJwtAssertionCredentials.from_json(json_key) 文件“C:\Python34\lib\site-packages \oauth2client\client.py”,第 1479 行,在 from_json 数据 = json.loads(s) 文件“C:\Python34\lib\json__init__.py”,第 312 行,在负载 s 中。name )) TypeError: JSON 对象必须是 str,而不是 'dict'

0 投票
2 回答
2655 浏览

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

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

更新 这里是我的代码:

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

0 投票
1 回答
1136 浏览

oauth - gspread/OAuth2:经过身份验证的默认 gmail 帐户(在 ClientLogin 早期使用)

去年我一直在使用 gspread(通过 ClientLogin 验证)。现在我想使用 OAuth2。我已经按照 gspread 网站的教程进行操作:http: //gspread.readthedocs.org/en/latest/oauth2.html

问题是这种方法会创建新的“电子邮件地址”(在 console.developers.google 中),它无法访问电子表格 - 所有电子表格都应该再次共享。如果您有 1000 多个电子表格,这真的很难。

问题是:如何使用 OAuth2 对我的默认 gmail 帐户(我一直用来通过 ClientLogin 访问)进行身份验证?

谢谢!

编辑:

我遵循了本教程: http: //www.indjango.com/access-google-sheets-in-python-using-gspread/

但我从 1.2 点修改了代码:http: //www.indjango.com/access-google-sheets-in-python-using-gspread/#comment-2026863410

结果 - 一些电子表格可用,一些不可用,我不知道为什么(访问列表中的相同条目)......

0 投票
1 回答
408 浏览

python - gspread 在尝试登录时给出 TypeError: expected bytes

我正在尝试将 Google 电子表格 OAuth 与 gspread 库一起使用。发送凭据时出现TypeError: expected bytes, not str异常。我该如何解决?

0 投票
2 回答
3474 浏览

python - oauth2client.client.CryptoUnavailableError:没有可用的加密库

所以我想做的是使用 Python 来访问我拥有的一些 Google 电子表格。我想从电子表格中获取数据来操作它并对其进行一些分析。我过去成功地使用了 gspread,但是现在当我尝试使用它时,我遇到了几堵墙。当我运行以下代码时:

我收到以下错误:oauth2client.client.CryptoUnavailableError: No crypto library available

现在我在这里读到,如果你下载并安装 PyOpenSLL,那么你可以绕过这个错误。好吧,我从 GitHub 下载了代码并运行

我仍然遇到这个错误。我需要对这个模块做些什么,还是我只是完全错过了其他东西?谢谢你的帮助。

另外我不知道这是否与错误有关,但我在打开它时更改文件类型编码的原因是因为当我尝试定期打开它时它抛出了 UnicodeDecodeError。

0 投票
1 回答
304 浏览

python - 无法使用 gspread 进行身份验证以访问 Google Drive

我使用 python 来生成一种方法来跟进我已经发送书籍但没有收到回复的潜在客户。快速赶上他们的方法。必须强调这不用于垃圾邮件。

我有一个 gmail_variable.py 文件,其中包含 GMAIL_USERNAME = "myemail@gmail.com" GMAIL_PASSWORD = "myGmailPassword"

下面使用这些详细信息登录 Google Drive 并向尚未回复我的任何人发送电子邮件。工作到今天都很好。开始收到以下错误。我从终端运行它并将代码本地保存在我的机器上。

下面是被执行的代码。根据我阅读的内容,我知道 oAuth 在 4 月 20 日发生了变化。但是下面的代码在那之前一直在工作。

经过一些初步研究,我发现 gspread 建议更换

然后我在这里浏览了指南并按照他们的建议设置了 API。下载了 JSON 文件。但是我用什么替换 OAuth2Credentials?

非常感谢任何想法或建议。python仍然很新,所以简单的解释很有帮助:)

0 投票
1 回答
160 浏览

python - 谷歌电子表格安全客户电子邮件共享?

我目前正在使用 Gspread python 库将数据写入谷歌电子表格。但是,谷歌电子表格是安全的,我无法共享客户端电子邮件以将数据写入电子表格。有没有办法从我的 python 脚本中写入数据?我无法更改配置以使其可与任何东西共享。

0 投票
2 回答
705 浏览

python - Python - 使用 OAuth 2.0 服务客户端访问 Google 电子表格时出现问题

我拥有一个 Google 电子表格,我试图通过我正在编写的一个小的 OAuth 2.0 Python 服务客户端访问它,使用gspreadoauth2client.

我在 Google Developers Console 上创建了一个 OAuth 2.0 服务帐户,并与该电子邮件共享了电子表格,让客户端/应用程序可以访问它,并将包含凭据的 JSON 密钥文件放在一个小测试脚本中。虽然我能够构建 OAuth 2.0 凭据对象,甚至可以获得电子表格客户端,但在调用openall()客户端时会出现 XML 解析错误:

这是代码:

0 投票
1 回答
794 浏览

python-2.7 - 我可以在 GSpread 中控制 insert_row 的输出吗?

我已经使用 Gspread( https://github.com/burnash/gspread )成功地将一些数据导入 Gsheets 。但是,我看到 insert_row 正在获取值和单元格详细信息。我可以控制它吗,我只想导入“值”而不是单元格详细信息?

<Cell R1C1 u'this is the value'>, <Cell R1C2 u'this is the value'>, <Cell R1C3 u"this is the value'>

我查看了一些关于 SO 的 gspread 相关帖子,没有类似的。这篇文章给了我一些见解gspread 之类的:帮助我获取单元格坐标(不是值)

update_cells(list) 工作得非常好(在给定范围内更新),但我无法插入新行或新列。现在,我正在使用这种方法 (update_cells()),它只为我获取值。谢谢!!

0 投票
1 回答
1516 浏览

python - Python 的 gspread 中特定 Google 表格电子表格上的持久性 SpreadsheetNotFound 错误

我正在使用gspread从数百个 Google 表格电子表格中收集数据。我解析 Google Drive 存储在本地目录中的文件,并获取指定文件夹中所有电子表格的 URL。然后,我使用 python 包装器来检查 URL,并使用 shell 脚本包装器在连接出现故障时快速启动 python 包装器。

故障的原因之一是 SpreadsheetNotFound 错误。我进行了大约一半的快速检查,发现我的电子表格中有 21/139 (~15%) 总是出现这个错误(如果五次都没有找到,我让它跳过电子表格)。我已经使用 iPython 并使用 open_by_url、open_by_key 和 open(带有标题)手动测试了这些,但它们都返回相同的 SpreadsheetNotFound 错误。最令人沮丧的部分是能够直接从我的错误消息中复制 URL,将其粘贴到浏览器中,并且浏览器可以毫无问题地直接进入电子表格。第二个最令人沮丧的部分是它对大约 85% 的电子表格工作得很好,但 85% 并不能完全消除它。

我什至不确定这是否可以解决。我只是好奇是否还有其他人对 gspread 有过这个问题。

感谢您的任何反馈。

编辑 1:嗯,失败的电子表格都是在 2015 年 2 月 2 日之前创建的。旧工作表已更新为最新版本的云端硬盘 - 这可能对 API 产生了影响。