使用第三方库时出现带“gbk”的Python UnicodeDecodeError

2024-10-01 17:40:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试SheffieldML(https://github.com/SheffieldML/PyDeepGP)提供的“PyDeepGP”中的示例。在示例代码中,第三方库pods用于提供一些开放的数据集。你知道吗

运行示例代码后,我立即遇到错误消息: “UnicodeDecodeError:'gbk'编解码器无法解码位置37571中的字节0x93:非法的多字节序列”。 当pods试图打开一个名为“data”的文件时,就会出现错误_资源.json'并对其执行file.read()。你知道吗

我手动f = open("...\data_resources.json", encoding="utf8")然后f.read(),一切都会好起来的。很明显,我的python选择“gbk”来解码一个未知原因的“utf8”文件。你知道吗

但是,我不可能在第三方库的每一段代码中都添加encoding="utf8"。我想用utf-8强制python自动打开文件。你知道吗

我检查了sys.getdefaultencoding(),它像往常一样是“utf8”。 我试着在files.autoGuessEncoding打开然后关闭的情况下设置vscode。 我甚至尝试了http://www.programmersought.com/article/4189689383/提供的解决方案,添加

import _locale
_locale._getdefaultlocale = (lambda *args: ['zh_CN', 'utf8'])

对代码。它只有在我手动编写open(file) as f然后f.read()时才能工作。但是,当我运行整个示例代码时,它失败了,因为文件是由第三方库打开的。你知道吗

我目前正在Windows10上使用Python3.6.7和Anaconda。你知道吗

以下是完整的错误消息:

Traceback (most recent call last):
  File "..../SheffieldML-PyDeepGP/examples/example_supervised_learning.py", line 35, in <module>
    import pods
  File "....\lib\site-packages\pods\__init__.py", line 5, in <module>
    from . import datasets
  File "....\lib\site-packages\pods\datasets.py", line 53, in <module>
    json_data=open(path).read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0x93 in position 37571: illegal multibyte sequence

Tags: 文件代码inimportjson示例readdata

热门问题