Как разобрать строку байтов в 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()