Python: msgpack TypeError "write() argument must be str, not bytes" beheben
Problem:
Beim Versuch, ein Objekt mit msgpack in eine Datei zu schreiben, mit Code wie
write_msgpack_text_mode.py
with open("myobj.msgpack", "w") as outfile:
msgpack.dump(myobj, outfile)wird eine Fehlermeldung wie die folgende angezeigt:
msgpack_traceback.txt
File /usr/lib/python3/dist-packages/msgpack/__init__.py:26, in pack(o, stream, **kwargs)
20 """
21 Pack object `o` and write it to `stream`
22
23 See :class:`Packer` for options.
24 """
25 packer = Packer(**kwargs)
---> 26 stream.write(packer.pack(o))
TypeError: write() argument must be str, not bytesLösung
msgpack schreibt Binärdaten, daher musst du die Datei im Binärmodus mit open(..., "wb") öffnen:
write_msgpack_binary.py
with open("myobj.msgpack", "wb") as outfile:
msgpack.dump(myobj, outfile)Check out similar posts by category:
Python
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow