Как преобразовать "двоичную строку" в обычную строку в Python3?

Например, у меня есть строка вроде этого (возвращаемое значение subprocess.check_output):

>>> b'a string'
b'a string'

Что бы я ни делал с ним, он всегда печатается с раздражающим b' перед строкой:

>>> print(b'a string')
b'a string'
>>> print(str(b'a string'))
b'a string'

Есть ли у кого-нибудь идеи о том, как использовать его как обычную строку или преобразовать в обычную строку?

Ответ 1

Декодировать его.

>>> b'a string'.decode('ascii')
'a string'

Чтобы получить байты из строки, закодируйте ее.

>>> 'a string'.encode('ascii')
b'a string'

Ответ 2

Если ответ из falsetru не работает, вы также можете попробовать:

>>> b'a string'.decode('utf-8')
'a string'

Ответ 3

Я получаю данные как

b'{"status":"1","data":"\xd9\x83"}'

Этот ответ я получаю от

response = requests.post(url=URL,payload=data)

print(response.json())

Это показывает ошибку :: кодек ascii не может кодировать символы в позиции 87-91