将查询结果写入 csv 时,“utf8”编解码器无法解码字节 0x92

乔什·弗洛里

我正在从谷歌表中读取查询作为文本,该表在下面作为“str1”传递。这是我的代码:

# get query string from google sheets
# establish database connection
cursor = conn.cursor()
cursor.execute((str1))
results1 = cursor.fetchall()
cursor.close()
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
for row in results1:
    ws.append(row)

此时,我收到标题所示的错误:

  File "<stdin>", line 2, in <module>
  File "/Library/Python/2.7/site-packages/openpyxl/worksheet/worksheet.py", line 790, in append
    cell = Cell(self, row=row_idx, col_idx=col_idx, value=content)
  File "/Library/Python/2.7/site-packages/openpyxl/cell/cell.py", line 114, in __init__
    self.value = value
   File "/Library/Python/2.7/site-packages/openpyxl/cell/cell.py", line 294, in value
    self._bind_value(value)
  File "/Library/Python/2.7/site-packages/openpyxl/cell/cell.py", line 191, in _bind_value
    value = self.check_string(value)
  File "/Library/Python/2.7/site-packages/openpyxl/cell/cell.py", line 150, in check_string
    value = unicode(value, self.encoding)
UnicodeDecodeError: 'utf8' codec can't decode byte 0x92 in position 48: invalid start byte

数据与作者/文章信息有关(我们是出版商)。它包含内容 ID、站点代码、署名、作者、Facebook 广告链接和拉取日期/时间

这是包含错误的一行数据的示例:

(1693279, 'CPD', 'Morgan Dietrich', "20 Intuitive People Share Their 'Something Doesn\x92t Feel Right' Story That Turned Out To Be True", 'business.facebook.com/550634765042035/posts/…;, datetime.datetime(2017, 11, 29, 20, 49, 24))

我已经阅读了很多有关此错误的问题,但无法找到解决方案。查询的结果 (results1) - 成功运行 - 是一个像这样的元组:

( (query result ro1/col1, query result ro1/col2, query result ro1/col3), 
  (query result ro2/col1, query result ro2/col2, query result ro2/col3), ... etc... )

我试过 .encode/.decode 但它们似乎不适用于元组。我试过过滤坏字符,但没有奏效。

我到底该如何解决这个问题?这些与 utf8 相关的错误在过去曾让我感到非常烦恼,尽管我阅读了所有内容,但似乎仍然相当混乱。

失败的行是

(1693279,
 'CPD',
 'Morgan Dietrich',
 "20 Intuitive People Share Their 'Something Doesn\x92t Feel Right' Story That Turned Out To Be True",
 'https://business.facebook.com/550634765042035/posts/1223000787805426',
 datetime.datetime(2017, 11, 29, 20, 49, 24))
马丁·彼得斯

您有包含非 ASCII 和非 UTF8 数据的字节串数据。您要么必须将数据库配置为为第 4 列返回 Unicode 字符串,要么手动解码。

如果将数据解码为 Windows 代码页 1252(或同一范围内的许多其他 Windows 代码页,但 1252 最有可能用于其他英文文本),则 0x92 字节是U+2019 右单引号代码点,因此您可以试试吧:

for row in results1:
    row = list(row)  # convert to list for easier mutation
    row[3] = row[3].decode('cp1252')
    ws.append(row)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

'utf8'编解码器无法解码字节0xbd CSV文件1/2字符

来自分类Dev

MySQLDB'utf-8'编解码器无法解码字节0x92的问题

来自分类Dev

'utf8'编解码器无法解码字节0xf3

来自分类Dev

'UTF-8'编解码器无法解码字节0x80

来自分类Dev

pd.read_csv:utf-8' 编解码器无法解码位置 61 中的字节 0x98:无效的起始字节

来自分类Dev

utf8'编解码器无法解码位置的字节0xae

来自分类Dev

'utf8'编解码器无法解码位置59的字节0xdf:无效的连续字节

来自分类Dev

'utf8'编解码器无法解码位置59的字节0xdf:无效的连续字节

来自分类Dev

提供UnicodeDecodeError的Python 3 CSV文件:“ utf-8”编解码器在我打印时无法解码字节错误

来自分类Dev

在UnicodeDecodeError压缩的文件上,熊猫read_csv失败:'utf-8'编解码器无法解码位置1的字节0x8b:无效的起始字节

来自分类Dev

Django模板'ascii'编解码器无法解码字节0xd8

来自分类Dev

'ascii'编解码器在执行bs时无法解码字节0xcb

来自分类Dev

UnicodeDecodeError:'ascii'编解码器无法解码位置47的字节0x92:序数不在范围内(128)

来自分类Dev

UnicodeDecodeError:'utf8'编解码器无法解码位置3131中的字节0x80:无效的起始字节

来自分类Dev

Google SDK gcloud 崩溃(UnicodeDecodeError):“utf8”编解码器无法解码位置 29 中的字节 0xf8:起始字节无效

来自分类Dev

python:UnicodeDecodeError:'utf8'编解码器无法解码位置0的字节0xc0:无效的起始字节

来自分类Dev

json.dump-UnicodeDecodeError:'utf8'编解码器无法解码位置0的字节0xbf:无效的起始字节

来自分类Dev

UBlox NAV_PVT消息:UnicodeDecodeError:'utf-8'编解码器无法解码字节0xb5

来自分类Dev

UnicodeDecodeError:'utf8'编解码器无法解码位置1266中的字节0xba:无效的起始字节

来自分类Dev

UnicodeDecodeError:'utf8'编解码器无法解码位置178175077中的字节0xf6:无效的起始字节

来自分类Dev

Python'utf8'编解码器无法解码位置72的字节0xc3:无效的连续字节

来自分类Dev

ascii编解码器无法解码字节0xe9

来自分类Dev

UnicodeDecodeError:“ ascii”编解码器无法解码字节0xc5

来自分类Dev

Python UnicodeDecodeError:“ ascii”编解码器无法解码字节0xc3

来自分类Dev

如何修复json.dumps错误'utf8'编解码器无法解码位置2'的字节0xe0?

来自分类Dev

如何修复json.dumps错误'utf8'编解码器无法解码位置2'的字节0xe0?

来自分类Dev

UnicodeDecodeError:'utf8'编解码器无法解码位置34的字节0xc3:数据意外结束

来自分类Dev

UnicodeDecodeError:'utf8'编解码器无法解码位置34的字节0xc3:数据意外结束

来自分类Dev

发生异常:UnicodeDecodeError'utf-8'编解码器无法解码位置的字节0xf1

Related 相关文章

  1. 1

    'utf8'编解码器无法解码字节0xbd CSV文件1/2字符

  2. 2

    MySQLDB'utf-8'编解码器无法解码字节0x92的问题

  3. 3

    'utf8'编解码器无法解码字节0xf3

  4. 4

    'UTF-8'编解码器无法解码字节0x80

  5. 5

    pd.read_csv:utf-8' 编解码器无法解码位置 61 中的字节 0x98:无效的起始字节

  6. 6

    utf8'编解码器无法解码位置的字节0xae

  7. 7

    'utf8'编解码器无法解码位置59的字节0xdf:无效的连续字节

  8. 8

    'utf8'编解码器无法解码位置59的字节0xdf:无效的连续字节

  9. 9

    提供UnicodeDecodeError的Python 3 CSV文件:“ utf-8”编解码器在我打印时无法解码字节错误

  10. 10

    在UnicodeDecodeError压缩的文件上,熊猫read_csv失败:'utf-8'编解码器无法解码位置1的字节0x8b:无效的起始字节

  11. 11

    Django模板'ascii'编解码器无法解码字节0xd8

  12. 12

    'ascii'编解码器在执行bs时无法解码字节0xcb

  13. 13

    UnicodeDecodeError:'ascii'编解码器无法解码位置47的字节0x92:序数不在范围内(128)

  14. 14

    UnicodeDecodeError:'utf8'编解码器无法解码位置3131中的字节0x80:无效的起始字节

  15. 15

    Google SDK gcloud 崩溃(UnicodeDecodeError):“utf8”编解码器无法解码位置 29 中的字节 0xf8:起始字节无效

  16. 16

    python:UnicodeDecodeError:'utf8'编解码器无法解码位置0的字节0xc0:无效的起始字节

  17. 17

    json.dump-UnicodeDecodeError:'utf8'编解码器无法解码位置0的字节0xbf:无效的起始字节

  18. 18

    UBlox NAV_PVT消息:UnicodeDecodeError:'utf-8'编解码器无法解码字节0xb5

  19. 19

    UnicodeDecodeError:'utf8'编解码器无法解码位置1266中的字节0xba:无效的起始字节

  20. 20

    UnicodeDecodeError:'utf8'编解码器无法解码位置178175077中的字节0xf6:无效的起始字节

  21. 21

    Python'utf8'编解码器无法解码位置72的字节0xc3:无效的连续字节

  22. 22

    ascii编解码器无法解码字节0xe9

  23. 23

    UnicodeDecodeError:“ ascii”编解码器无法解码字节0xc5

  24. 24

    Python UnicodeDecodeError:“ ascii”编解码器无法解码字节0xc3

  25. 25

    如何修复json.dumps错误'utf8'编解码器无法解码位置2'的字节0xe0?

  26. 26

    如何修复json.dumps错误'utf8'编解码器无法解码位置2'的字节0xe0?

  27. 27

    UnicodeDecodeError:'utf8'编解码器无法解码位置34的字节0xc3:数据意外结束

  28. 28

    UnicodeDecodeError:'utf8'编解码器无法解码位置34的字节0xc3:数据意外结束

  29. 29

    发生异常:UnicodeDecodeError'utf-8'编解码器无法解码位置的字节0xf1

热门标签

归档