Как разобрать строку байтов в Python 3?

По сути, у меня есть две строки байтов в одной строке, как это:

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

Это строка Unicode, которую я импортирую из онлайн-файла, используя urllibи я хочу сравнить отдельные байтовые строки, чтобы я мог заменить неправильные. Тем не менее, я не могу найти способ разобрать строку, чтобы я получил \xe0\xa6\xb8\xe0\xa6\x96 а также \xe0\xa6\xb6\xe0\xa6\x96 в двух разных переменных.

Я пытался преобразовать его в сырую строку, как str(b'\xe0\xa6\xb8\xe0\xa6\x96') и индексация на самом деле работает, но в этом случае я не могу вернуться к исходной строке байтов в первую очередь.

Является ли это возможным? Любая помощь будет отличной!

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, и он отлично работает.

Я бы сделал что-то вроде этого:

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()
Другие вопросы по тегам