UnicodeDecodeError无法将通过写入和读取(使用panda)到fi中解决的字节解码

2024-04-24 14:33:49 发布

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

我有一个类似excel的数据结构,由我无法解码的字节组成。你知道吗

这是一个如下所示的列表:

my_object = [b'\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1..., ........, b'\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff']

(请注意,我的\u对象的最后一行是实际的,并在这里完整地写了出来。)

如果我尝试独立解码行,我会得到:

my_object[-1].decode()
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 3: invalid start byte

(请注意,我尝试了几种不同的编解码器,包括:“utf8”、“ascii”、“ISO-8859-2”、“gbk”、“拉丁语1”…)

但是,如果我尝试先将\u对象保存到文件中,请使用:

f = open('test.xls','wb')
[f.write(my_object[i]) for i in range(len(my_object))]
f.close()

然后用熊猫打开:

import pandas as pd
pd.read_excel('test.xls')

我得到了预期的结果:

     Time (s)  Acceleration x (m/s^2)  Acceleration y (m/s^2)  \
0    0.000000                0.863679                0.196953   
1    0.002500                0.892268                0.206483   
2    0.005001                0.844621                0.196953  
......

这是一个很好的解决方法,但是,我真的希望避免从磁盘写入和读取来执行这样的操作。你知道吗

有人能帮忙吗?你知道吗

先谢谢你。你知道吗


Tags: 对象intest数据结构objectmybyte解码
1条回答
网友
1楼 · 发布于 2024-04-24 14:33:49

如果只想在内存中已有原始字节的情况下读取excel文件,可以使用io包将字符串或字节转换为内存中的可读文件:

import io
file_bytes = b''.join(my_object)
pd.read_excel(io.BytesIO(file_bytes))

相关问题 更多 >