1

我可以使用gspread 包在我的 Mac 终端上运行的 Python 脚本中更新谷歌电子表格。

gc = gspread.login('username@domain.com','password')
gs = gc.open("Test Google Spreadsheet")
print gs.worksheets()
sht = gs.worksheet("Test Worksheet")
sht.update_cell(1, 1, "Test")

当我从云中的 CentOS 6 主机运行相同的脚本时,我能够通过打印 gs.worksheets(),这意味着身份验证不是问题,但我在更新命令上崩溃:

  File "/mydir/myscript.py", line 30, in myfunc
    sht.update_cell(1, 1, "Test")
  File "my_ve_dir/lib/python2.7/site-packages/gspread/models.py", line 423, in update_cell
    self.client.put_feed(uri, ElementTree.tostring(feed))
  File "my_ve_dir/lib/python2.7/site-packages/gspread/client.py", line 250, in put_feed
    raise ex
urllib2.HTTPError: HTTP Error 400: Bad Request

当我使用批量更新单元的方法时,它在 mac 上按预期工作,但在 CentOS 主机上静默失败(不引发任何异常)。

sht.update_cells(cell_list)

所以我想知道可能出了什么问题。我向其他端点发出了成功的 API 请求(包括 GET 和 POST),所以我对这里可能发生的事情感到困惑。任何想法将不胜感激。

4

1 回答 1

0

从评论中重新发布我的答案 - 检查以确保两个主机系统具有相同版本的 python 和 gspread。

此外,我通常会尝试在不同的系统上使用相同的包部署方法来确保建立依赖关系 - 如果 pip 支持库,它就很棒。

于 2014-05-22T15:26:54.030 回答