Python列表推导式替换 - 需要一个类似字节的对象,而不是str

2024-04-26 17:21:23 发布

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

我正在尝试将制表符分隔的字节对象拆分为行和字段。在我的输入数据中,当一个字段应该为空时,数据有--。我想替换--当我使用它来构建mysql插入“”时,它将充当空的。我对列出理解是陌生的,但我发现了一些类似的例子。你知道吗

for line in line_split[1:]:
    field_split=line.split(b'\t')
    field_split = [x.replace('--', '') for x in field_split]
    print("f-", field_split)
    report_list.append(field_split)

如果我注释掉了出现错误的replace行,这样它就可以打印了,那么我将返回下一行。如果向右滚动,我要替换的字段值将显示b'--'。这似乎应该是一个简单的解决办法,但我有一个长期的混乱,然后我想承认

f- [b'1020569383', b'X012312', b'42132LVPG0U', b'Glow', b'Sports', b'Glow', b'Amazon', b'18.85', b'18.85', b'11.61', b'10.67', b'1.54', b'36.02', b'inches', b'0.52', b'pounds', b'Lg-Std-Non-Media', b'USD', b'6.02', b'2.83', b'0.00', b'--', b'--', b'--', b'3.19']

Tags: 数据对象infieldfor字节linemysql
1条回答
网友
1楼 · 发布于 2024-04-26 17:21:23

我可以给你两个建议。首先是把它从字典里删除-

x = [b'1020569383', b'X012312', b'42132LVPG0U', b'Glow', b'Sports', b'Glow', b'Amazon', b'18.85', b'18.85', b'11.61', b'10.67', b'1.54', b'36.02', b'inches', b'0.52', b'pounds', b'Lg-Std-Non-Media', b'USD', b'6.02', b'2.83', b'0.00', b' ', b' ', b' ', b'3.19']
final_list = [i for i in x if i != b" "]

或者用''-

final_list = [i.replace(b" ", b"") for i in x]

这些课文前面的b是什么?如果你做type(x[0]),你会得到<class 'bytes'>。因此您还需要在byte字符串中执行操作,因此b""

相关问题 更多 >