我如何在Python中将字符串转换为字节,例如node js

时间:2018-12-24 05:43:50

标签: python hex byte

我在这样的节点js中使用带Buffer的二进制数据。

<Buffer 01 05 01 4c 61 60>

如何在Python中使用它?

我试图做到这一点,但结果是

    a = a.to_bytes(2,'big')
    b = b.to_bytes(1, 'big')
    result = a + b + str.encode(c)
  
    

b“ \ x01 \ x05 \ x01 {'Lang':'En'}”

  

codecs.encode(result,'hex')
  
    

b“ 0105014c6160”

  
  1. 为什么他们向我展示转义字符?我该如何删除?
  2. 第一个和最后一个是相同的数据吗?

1 个答案:

答案 0 :(得分:0)

根据标题和您的措辞,听起来您正在寻找类似于node.js Buffer.from的东西,它返回一个可变数组,如二进制数据。

Python具有bytearray函数,可让您对数据进行突变

>>> a = bytearray('hello, world!', encoding='utf8')
>>> a[0]
104
>>> a[0] = 105
>>> x
bytearray(b'iello, world!')

如果您不需要可变性,则可以将字符串编码为字节'hello, world!'.encode('utf8')(假设您使用的编码是utf8)。

您可以像这样覆盖它的表示方式。

>>> class MyBytes(bytes):
...     def __repr__(self):
...         return '<Bytes {}>'.format(' '.join([hex(i) for i in self]))
...
>>> MyBytes('hello', encoding='utf8')
<Bytes 0x68 0x65 0x6c 0x6c 0x6f>