我可以使用gspread package在Mac上的终端中运行的Python脚本中更新Google电子表格。
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主机运行相同的脚本时,我能够通过print 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),所以我对这里可能发生的事情感到困惑。任何想法都会非常感激。
答案 0 :(得分:0)
从评论中重新发布我的答案 - 检查以确保两个主机系统都具有相同版本的python和gspread。
此外,我通常尝试在不同的系统上使用相同的包部署方法来确保设置依赖关系 - 如果它支持库,则pip很棒。