将混合字节数据处理成 python 列表

Process mixed bytes data into python list

我正在读取数据远程 .dat 文件以进行 EDI 数据处理。

原始数据是一些字符串字节:

b'MDA1MDtWMjAxOS44LjAuMDtWMjAxOS44LjAuMDsyMDIwMD.........'

使用解码如下...

byte_data = base64.b64decode(byte_data)

给我以下字节数据。有没有更好的方法将以下字节数据处理到 python 列表中?

b"0050;V2019.8.0.0;V2019.8.0.0;20200407;184821\r\n0070;;7;0;7\r\n0080;11;50;bot.pdf;Driss;C:\Dat\Abl\\r\n0090;1;Z;Zub\xf6r;0;0;0;Zub\xf6r;;;Zub\xf6r\r\n

尝试使用 uft-8 解码,没有成功。

byte_data.decode('utf-8')

厌倦了转换为字符串并读取为 CSV 但无济于事,找到了原始数据。需要保留一些字符串原样并转换 \xf6r \r \n

data = io.StringIO(above_data)
data.seek(0)
csv_reader = csv.reader(data, delimiter=";")

它不适用于 'utf-8',因为它不是 'utf-8',它可能是 'ISO-8859-1'(latin-1)

text = byte_data.decode('ISO-8859-1')

因为 \xf6 在 'ISO-8859-1'

中是 ö

确定是utf-8编码的吗?

这可能有助于指导使用哪种解码器:

import chardet
print(cardet.detect(byte_data))