【问题标题】:gspread HTTPError: 400 using insert_row OR add_rowgspread HTTPError: 400 using insert_row OR add_row
【发布时间】: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 上回答你自己的问题吗?
  • 我没有,这是我第一次登录和发帖。现在我在下方看到“回答您的问题”按钮。
  • 我想你也可以接受你自己的回答来表明它已经解决了你的问题。

标签: python gspread


【解决方案1】:

好的,所以在我的例子中,一个未转义的 & 符号被传递给 gspread 的 models.resize() 函数。我不知道如何从源头解决未转义的 & 符号,所以我只是用正确的转义字符替换它,然后我就开始比赛了。

具体来说,我在第 500 行修改了 models.py(在 resize() 函数中) -

self._element = self.client.put_feed(uri, ElementTree.tostring(feed).replace("&format","&format"))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 2014-09-05
    • 1970-01-01
    • 2021-05-28
    • 2017-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多