如何在Python 3中解析字节字符串?

时间:2018-01-10 04:16:05

标签: python python-3.5 string-parsing python-unicode bytestring

基本上,我在一行中有两个字节串,如下所示:

b'\xe0\xa6\xb8\xe0\xa6\x96 - \xe0\xa6\xb6\xe0\xa6\x96\n'

这是我使用urllib从在线文件导入的unicode字符串,我想比较各个字节串,以便我可以替换错误的字符串。但是,我找不到任何解析字符串的方法,以便在两个不同的变量中得到\xe0\xa6\xb8\xe0\xa6\x96\xe0\xa6\xb6\xe0\xa6\x96

我尝试将其转换为像str(b'\xe0\xa6\xb8\xe0\xa6\x96')这样的原始字符串,并且索引实际上有效,但在这种情况下,我无法在第一时间恢复到原始字节字符串。

有可能吗?任何帮助都会很棒!

2 个答案:

答案 0 :(得分:2)

我会建议尝试这样的事情......

arr = b'\xe0\xa6\xb8\xe0\xa6\x96 - \xe0\xa6\xb6\xe0\xa6\x96\n'

splt = arr.decode().split(' - ')

b_arr1 = splt[0].encode()
b_arr2 = splt[1].encode()

我在python 3终端试了一下,它运行正常。

答案 1 :(得分:0)

我会做这样的事情:

a = b'\xe0\xa6\xb8\xe0\xa6\x96 - \xe0\xa6\xb6\xe0\xa6\x96\n'

parts = [part.strip() for part in a.decode().split('-')]

first_part = parts[0].encode()
second_part = parts[1].encode()