2017-09-05 5 views
1

In Python 3 Ich erhalte Fehler TypeError: a bytes-like object is required, not 'bytearray'Bytearray in Byte-ähnliches Objekt konvertieren?

Ich habe einen bytearray, die wie folgt aussieht:

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

Wenn ich das in der Konsole eingeben funktioniert es:

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

Aber dies ergibt einen Fehler, und ich kann nicht herausfinden, wie man die Zeichenfolge b '' aus dem Bytearray erhält:

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

Ich bin sicher, es ist offensichtlich, aber wie konvertiere ich das Bytearray in eine Zeichenfolge mit einem B-Präfix?

+1

'print (base58.b58encode (Bytes (my_ba))' - wandeln es nur –

+0

A bytearray * ist * ein bytesähnliches Objekt, aber die Bibliothek, die Sie verwenden, hat eine unnötig restriktive Implementierung und eine irreführende Fehlermeldung. – user2357112

Antwort

1

Wie Coldspeed es in den Kommentaren stellen, um nur bytearray zu einem bytes Anruf übergeben:

bytes(my_ba)

Verwandte Themen