如果它包含非ASCII字节,我不知道如何将Python的bitarray转换为字符串.例:
>>> string='\x9f'
>>> array=bytearray(string)
>>> array
bytearray(b'\x9f')
>>> array.decode()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0x9f in position 0: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
在我的例子中,我只想以某种方式从bytearray中获取字符串'\ x9f'.那可能吗?
Mar*_*ers 12
在Python 2中,只需将其传递给str()
:
>>> import sys; sys.version_info
sys.version_info(major=2, minor=7, micro=8, releaselevel='final', serial=0)
>>> string='\x9f'
>>> array=bytearray(string)
>>> array
bytearray(b'\x9f')
>>> str(array)
'\x9f'
Run Code Online (Sandbox Code Playgroud)
在Python 3中,您需要将其转换回bytes
对象:
>>> bytes(array)
b'\x9f'
Run Code Online (Sandbox Code Playgroud)
小智 5
我想提一下binascii
Python 自带的库。
我的用例:我正在查询一个数据库,该数据库有一个二进制字段用作数据库中的键。我想拉那个二进制字段并将其视为其他地方的密钥。我认为将其转换为字符串是最好的用例。
binascii 为我提供了一个更好的选择:
import binascii
binary_field = bytearray(b'\x92...')
binascii.hexlify(binary_field)
归档时间: |
|
查看次数: |
31468 次 |
最近记录: |