【发布时间】:2016-10-20 22:53:06
【问题描述】:
我的第一个 SO 问题,所以我希望我不会激怒这个群体 ;-)
使用 gspread 0.4.0 和 Python 2.7,我可以访问我的 Google Sheet 中的页面,可以读取数据,并且可以使用 update_cell() 更改单元格的内容。但是,尝试在工作表末尾插入一行或追加一行都会遇到以下错误:
File "c:\Python27\lib\site-packages\gspread\models.py", line 525, in append_row
self.add_rows(1)
File "c:\Python27\lib\site-packages\gspread\models.py", line 507, in add_rows
self.resize(rows=self.row_count + rows)
File "c:\Python27\lib\site-packages\gspread\models.py", line 500, in resize
self._element = self.client.put_feed(uri, ElementTree.tostring(feed))
File "c:\Python27\lib\site-packages\gspread\client.py", line 212, in put_feed
r = self.session.put(url, data, headers=headers)
File "c:\Python27\lib\site-packages\gspread\httpsession.py", line 85, in put
return self.request('PUT', url, data=data, **kwargs)
File "c:\Python27\lib\site-packages\gspread\httpsession.py", line 72, in request
response.status_code, response.content))
spread.exceptions.HTTPError: 400: The reference to entity "format" must end with the ';' delimiter.
我在 gspread Github 页面上发现了一个引用此错误的点击,并且该用户在从工作表中删除权限后显然已经看到问题消失了。我已删除我的权限,但错误仍然存在。
我不是最精通 HTTP 更新数据的用户,我认为这就是 gspread 在这里所做的,所以我很难过。这里有很多“””的东西让我的眼睛流血。
感谢集体提供的任何建议/帮助!
【问题讨论】:
-
您能否通过
update_cell()调用发布您的代码示例? -
嗨,Burnash,那艘船很久以前就航行了;我不知道为什么直到今晚我才收到您的请求通知,否则我会立即回复!但是,我最终确实将其归结为 models.py 中的一个问题,其中在第 501 行传递了一个未捕获的 & 符号。我将本地文件修改为这样读取,并且它可以工作。哈克但工作:
self._element = self.client.put_feed(uri, ElementTree.tostring(feed).replace("&format","&format")) -
不错。我想知道这个未转义的 & 符号首先在那里做什么,因为
feed的内容直接来自 Google 的 API。无论如何,您找到了解决方案是件好事。你知道你可以在 StackOverflow 上回答你自己的问题吗? -
我没有,这是我第一次登录和发帖。现在我在下方看到“回答您的问题”按钮。
-
我想你也可以接受你自己的回答来表明它已经解决了你的问题。