GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Kann nicht aufgeteilt werden, ein Byte-ähnliches Objekt ist erforderlich, nicht 'str'

Verwenden Sie decode() korrekt:entweder in zwei Schritten (wenn Sie blah wiederverwenden möchten ):

blah = blah.decode()
splitblah = blah.split("\n")
# other code that uses blah

oder Inline (wenn Sie es für den einmaligen Gebrauch benötigen):

splitblah = blah.decode().split("\n")

Ihr Problem mit der Verwendung von decode() war, dass Sie seinen Rückgabewert nicht verwendet haben. Beachten Sie, dass decode() tut nicht das Objekt ändern (blah ), um es etwas zuzuweisen oder zu übergeben:

# WRONG!
blah.decode()

SIEHE AUCH:
decode Dokumente.


Wenn Ihre Frage darauf hinausläuft:

Ich habe versucht, Decodierung und Codierung zu verwenden, aber es schreit mich immer noch an, dass die Split-Methode den Datentyp nicht verwenden kann.

Der vorliegende Fehler kann durch den folgenden Code demonstriert werden:

>>> blah = b'hello world'  # the "bytes" produced by check_output
>>> blah.split('\n')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: a bytes-like object is required, not 'str'

Um bytes aufzuteilen , ein bytes Objekt muss ebenfalls angegeben werden. Die Lösung ist einfach:

>>> blah.split(b'\n')
[b'hello world']

Linux
  1. OpenStack Neutron db_sync Fehler – Kann keine NOT NULL-Spalte mit dem Standardwert NULL hinzufügen [Gelöst]

  2. HP-Drucker kann nicht installiert werden:Plug-in-Installation nicht erfolgreich?

  3. Linux-Fehler beim Laden gemeinsam genutzter Bibliotheken:Gemeinsam genutzte Objektdatei kann nicht geöffnet werden:Keine solche Datei oder dieses Verzeichnis

  4. libstdc++.so.5:Shared-Object-Datei kann nicht geöffnet werden - aber Bibliothek ist installiert und aktuell

  5. libaio.so.1:Shared-Object-Datei kann nicht geöffnet werden

ImportError:libtk8.6.so:Shared-Object-Datei kann nicht geöffnet werden:Keine solche Datei oder Verzeichnis

ImportError:libcblas.so.3:Shared-Object-Datei kann nicht geöffnet werden:Keine solche Datei oder Verzeichnis

FEHLER:ld.so:Objekt 'libgtk3-nocsd.so.0' aus LD_PRELOAD kann nicht vorab geladen werden

bash:ulimit:Kerndateigröße:Grenze kann nicht geändert werden:Operation nicht erlaubt

mount.nfs:rpc.statd läuft nicht, wird aber für die Fernsperrung benötigt

Ausgabe von ps aux | beobachten grep blah in tmux funktioniert nicht?