草庐IT

python csv : UnicodeDecodeError

coder 2023-08-18 原文

我正在使用 Python 的 csv 模块读取一个文件,并且有另一个编码问题(抱歉,这里有太多)。

在 CSV 文件中,有 £ 符号。读入行并打印后,它们变成了\xa3。

尝试将它们编码为 Unicode 会产生 UnicodeDecodeError:

row = [unicode(x.strip()) for x in row]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa3 in position 0: ordinal not in range(128)

我一直在阅读 csv documentation以及 StackOverflow 上关于此的许多其他问题。我认为 £ 在 ASCII 中变成\xa3 意味着原始 CSV 文件是 UTF-8 格式的。

(顺便说一句,有没有快速检查 CSV 文件编码的方法?)

如果它是 UTF-8,那么 csv 模块不应该能够处理它吗?它似乎正在将所有符号转换为 ASCII,即使文档声称它接受 UTF-8。

我已经尝试添加 unicode_csv_reader 函数,如 csv examples 中所述,但这没有帮助。

----编辑-----

我应该澄清一件事。我看过this question ,看起来非常相似。但是添加在那里定义的 unicode_csv_reader 函数会产生不同的错误:

yield [unicode(cell, 'utf-8') for cell in row]
UnicodeDecodeError: 'utf8' codec can't decode byte 0xa3 in position 8: unexpected code byte

所以也许我的文件毕竟不是 UTF8?我怎么知道?

最佳答案

尝试使用“ISO-8859-1”进行编码。看起来您正在处理扩展的 ASCII,而不是 Unicode。

编辑:

下面是一些处理扩展 ASCII 的简单代码:

>>> s = "La Pe\xf1a"
>>> print s
La Pe±a
>>> print s.decode("latin-1")
La Peña
>>>

更好的是,处理给你带来问题的确切角色:

>>> s = "12\xa3"
>>> print s.decode("latin-1")
12£
>>>

关于 python csv : UnicodeDecodeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3479961/

有关python csv : UnicodeDecodeError的更多相关文章

  1. python - 我可以绕过 python 中的 UnicodeDecodeError 吗? - 2

    我有一个解析xml文件并返回以下错误的python脚本:UnicodeDecodeError:'charmap'codeccan'tdecodebyte0x9dinposition614617:charactermapsto我很确定错误的发生是因为我试图解析的xml文档中有一些非法字符,但是我无权直接修复我正在读取的这个特定的xml文件。我是否能够让这些字符不影响我的脚本并允许它继续解析而不会出错?这是读取xml并对其解码的脚本部分:defReadXML(self,path):self.logger.info("ReadingXMLfrom%s"%path)codec="Windows

  2. python - 将参数传递给 cursor.execute() 时在 pyodbc 中出现 UnicodeDecodeError,但在将参数直接写入字符串时却不会 - 2

    当尝试使用pyodbc将参数传递给准备好的语句时,Python返回UnicodeDecodingError。但是直接在preparedstatementstring中添加参数时,就没有这个错误了。我在Windows10(64位)上工作,使用Python3中的pyodbc库和“OracleinOraDB12Home1”驱动程序。将所有参数直接添加到包含sql语句的字符串时,从数据库中检索信息工作正常。这里有两个抛出上述错误的例子示例1cursor=cnxn.cursor()sql_statement="selectcol1from?wherecol1isnotnull;"params=(

  3. 已解决UnicodeDecodeError: ‘utf-8‘ codec can‘t decode bytes in position 1022-1023: unexpected end of dat - 2

    已解决使用pycharmrun运行代码正常,而debug却抛出异常UnicodeDecodeError:‘utf-8’codeccan’tdecodebytesinposition1022-1023:unexpectedendofdata,附上三种的正确解决方法,亲测有效!!!文章目录报错问题报错翻译报错原因解决方法1解决方法2解决方法3(亲测有效)千人全栈VIP答疑群联系博主帮忙解决报错报错问题粉丝群里面的一个小伙伴遇到问题跑来私信我,想用pycharmdebug,但是发生了报错(当时他心里瞬间凉了一大截,跑来找我求助,然后顺利帮助他解决了,顺便记录一下希望可以帮助到更多遇到这个bug不会解

  4. ios - 果酱 sdk UnicodeDecodeError - 2

    我是marmaladesdk的新手,在win7上启动IwGxHelloWorld.mkb时遇到错误。有人可以帮忙吗?谢谢!错误本身:D:\Marmalade\6.1\s3e\makefile_builder\mkb.pyD:\Marmalade\Project\HelloWorld\IwGxHelloWorld.mkbBuildingproject:d:/Marmalade/Project/HelloWorld/IwGxHelloWorld.mkbTraceback(mostrecentcalllast):File"D:\Marmalade\6.1\s3e\bin\\..\..\s3e

  5. python - Django 1.5 在持久化上传文件时引发 UnicodeDecodeError - 2

    当我将项目的django版本更新到1.5.x时,这个问题开始出现。我的问题是,当我使用mysql作为后端并上传文件并尝试将该文件的block保存到另一个模型时,我得到了UnicodeDecodeError。在django1.4.x中没有错误抛出并且相关模型被持久化。要重新创建的示例项目:https://github.com/imtapps/fileuploaderror模型.pyfromdjango.dbimportmodelsclassLongBlob(models.Field):defdb_type(self,connection):return"longblob"classDoc

  6. python3默认编码UnicodeDecodeError ascii使用apache WSGI - 2

    importlocaleprefered_encoding=locale.getpreferredencoding()prefered_encoding'ANSI_X3.4-1968'我正在使用一个名为inginious的框架它正在使用web.py渲染它的模板。web.template.render(os.path.join(root_path,dir_path),globals=self._template_globals,base=layout_path)渲染在我的本地主机上运行但在我的暂存服务器上不运行。它们都运行python3。我看到web.py在上强制执行utf-8仅Pyth

  7. python - PIP 的 UnicodeDecodeError? - 2

    我正在尝试分发我的开源项目,Melopy,但自从我开始以来,包管理一直给我带来问题。今天,我注册了PyPI,但是在运行pythonsetup.pysdistupload时,我遇到了以下错误。runningsdistrunningcheckreadingmanifesttemplate'MANIFEST.in'notwritingtomanuallymaintainedmanifestfile'MANIFEST'makinghardlinksinMelopy-0.1.0...CreatingtararchiveTraceback(mostrecentcalllast):File"setu

  8. python - PyCharm 调试器中的 UnicodeDecodeError - 2

    它是对UnicodeDecodeErrorwhileusingcyryllic的引用.我对Python3.3和Pycharm2.7.2有同样的问题尝试在代码中硬编码编码,在Pycharm选项中手动指定编码,但没有效果。它仍然尝试使用cp1251库打开utf-8文件。Connectedtopydevdebugger(build129.314)Traceback(mostrecentcalllast):File"C:\ProgramFiles(x86)\JetBrains\PyCharm2.7.2\helpers\pydev\pydevd.py",line1481,indebugger.r

  9. 编写德语字母时出现 Python UnicodeDecodeError - 2

    一段时间以来,我一直在努力解决这个错误,但我似乎无法在SO的任何地方找到解决方案,即使有类似的问题。这是我的代码:f=codecs.open(path,"a",encoding="utf-8")value="Bitteüberprüfen"f.write(("\"%s\"=\"%s\";\n"%("no_internet",value)).encode("utf-8"))我得到的错误是:UnicodeDecodeError:'ascii'codeccan'tdecodebyte0xc3inposition23:ordinalnotinrange(128)如果我说utf-8为什么是asc

  10. utf-8 文件的 Python 3.5 UnicodeDecodeError(语言为 'ang' ,古英语) - 2

    这是我第一次使用StackOverflow提问,但多年来你们共同保存了我的许多项目,我已经感到宾至如归了。我正在使用Python3.5和nltk来解析完整的古英语语料库,它以77个文本文件和一个XML文档的形式发布给我,该文档将文件序列指定为TEI格式语料库的连续片段。这是XML文档header的相关部分,表明我们实际上正在使用TEI:是的,作为测试,我只是尝试使用NLTK的MTECorpusReader打开语料库并使用words()方法来证明我可以打开它。我正在从交互式Pythonshell中执行所有这些操作,只是为了便于测试。这就是我真正在做的事情:#importthereader

随机推荐