【问题标题】:Convert bytearray to bytes-like object?将字节数组转换为类似字节的对象?
【发布时间】:2018-02-14 06:52:45
【问题描述】:

在 Python 3 中,我收到错误 TypeError: a bytes-like object is required, not 'bytearray'

我有一个字节数组,看起来像这样:

 >>> print(my_ba)
 bytearray(b'}\x0e\x15/ow4|-')

如果我在控制台中输入它,它会起作用:

 >>> print(base58.b58encode(b'}\x0e\x15/ow4|-'))
 2bKmhuGiGP7t8

但这会报错,我不知道如何从 bytearray 中获取 b'' 字符串:

 >>> print(base58.b58encode(my_ba))
 TypeError: a bytes-like object is required, not 'bytearray'

我确定这很明显,但是如何将字节数组转换为带有 b 前缀的字符串?

【问题讨论】:

  • print(base58.b58encode(bytes(my_ba)) - 只需转换它
  • 字节数组 is 是一个类似字节的对象,但您使用的库具有不必要的限制性实现和误导性错误消息。
  • @user2357112,顺便说一句,我在 stdlib zlib.decompress 方法中遇到了相同的字节参数限制

标签: arrays python-3.x


【解决方案1】:

正如 Coldspeed 将它放在 cmets 中一样,只需将一个字节数组传递给 bytes 调用:

bytes(my_ba)

【讨论】:

    猜你喜欢
    • 2019-02-04
    • 1970-01-01
    • 2021-02-23
    • 2019-09-07
    • 2021-11-30
    • 2021-05-13
    • 2018-09-08
    • 2016-10-31
    • 1970-01-01
    相关资源
    最近更新 更多