我从目录中获取数据,它以字节格式提供数据。
字节数据:
b'\x80\x00\x00\x00\n\x00\x00%\x83\xa0\x08\x01\x00\xbb@\x00\x00\x05p
\x02\x00>\xf3\x00\x00\x00}\x02\x00`\x03\xef0\x00\x00\r\xc0
\x06\xf0>\xf3\x00\x00\x02\x88\x02\x03\xec\x03\xef0\x00\x00/.....'
在以字符串或任何可读格式转换此数据时,我遇到以下错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
我使用的代码(Python 3.7.3):
blobs = blob.decode('utf-8')
而且
import json
json.dumps(blob.decode())
我还使用了泡菜
、ast
和pprint
,但它们在这里没有帮助。
我尝试的是:
您的示例中的数据显然不是任何常用编码中的文本。Python和我们都无法找到将显然不是文本的数据转换为字符串的方法。
如果这是一种定义良好的二进制文件格式,请为此格式找到一个解析器(理想情况下是一个流行的Python库,但对于更模糊或专有的格式,您可能找不到),或者如果您能够通过巧妙的实验和良好的猜测,或者通过查找(如果不是权威性的,则可能或多或少是推测性的第三方)文档。
如果您只是想将字节转换为具有相同Unicode代码点的字符串代码点(例如,输入字节\xff
映射到Unicode代码点U 00FF),则'latin-1'
编码可以实现这一点,虽然不明显,但很方便。这种情况下的结果显然不是有用的人类可读文本;在许多方面,将数据保留为字节
会更自然、更不容易出错,也更方便。
您可以尝试忽略非可读块。
blobs。解码('utf-8','ignore')
这不是一个很好的解决方案,但是生成字节对象的方式有一些问题。也许,utf-8
不是数据的正确编码。
UTF-8编码有一些内置冗余,至少有两个目的:
起始字节(以二进制点表示,携带实际数据)与以下4种模式之一匹配
0.......
110.....
1110....
11110...
而连续字节(0到3)总是这种形式
10......
如果不遵守此编码,可以安全地说它不是UTF-8数据,例如,因为在传输过程中发生了损坏。
为什么可以说b'\x80\'
不能是UTF-8?已经在头两个字节处违反了编码:因为80必须是一个延续字节。这正是您的错误消息所说的:
UnicodeDecodeError:“utf-8”编解码器无法解码位置0中的字节0x80:无效的开始字节
即使跳过这一步,在b“%\x83”
的几个字节后也会遇到另一个问题,因此很可能是您试图解码错误的数据,或者假设编码错误。
我试图从csv文件中读取所有列。 错误:UnicodeDecodeError:“utf-8”编解码器无法解码位置15中的字节0x96:无效的开始字节
我是Python新手,我正在尝试使用下面的脚本读取csv文件。 但是,得到错误UnicodeDecodeError:'utf-8'编解码器不能解码字节0x96在位置35:无效的开始字节,请帮助我知道这里的问题,我在脚本中使用编码以为它会解决错误。
我正在尝试使用进行培训。我在运行时遇到此错误: 我运行在和 管道配置路径=pack\u检测器/models/ssd\u mobilenet\u v1/ssd\u mobilenet\u v1\u pack。配置回溯(最近一次调用last):tf中第184行的文件“legacy/train.py”。应用程序。run()文件“C:\Users\suparun\Anaconda3\envs\tensor
https://github.com/affinelayer/pix2pix-tensorflow/tree/master/tools 在上述站点上编译“process.py”时出错。 回溯(最近一次呼叫最后一次): 错误的原因是什么?Python的版本是3.5。2.
我正在从Tensorflow导入我的模型,只想使用以下代码优化经过训练的模型: 它显示了这个错误: Traceback(最近一次调用最后一次):File",第2行,data=f.read()File"C:\用户\Chaine\AppData\本地\程序\Python\Python35\lib\site-包\tensorflow\python\lib\io\file_io.py",第125行,读取p
问题内容: https://github.com/affinelayer/pix2pix- tensorflow/tree/master/tools 在上述站点上编译“ process.py”时发生错误。 追溯(最近一次通话): 错误原因是什么?Python的版本是3.5.2。 问题答案: Python尝试将字节数组(假定为utf-8编码的字符串)转换为unicode字符串()。当然,此过程是根据