Ein Fehler, auf den Sie bei der Verwendung von Python stoßen können, ist:

TypeError: expected string or bytes-like object

Dieser Fehler tritt normalerweise auf, wenn Sie versuchen, die re.sub()-Funktion zu verwenden, um bestimmte Muster in einem Objekt zu ersetzen, aber das Objekt, mit dem Sie arbeiten, nicht vollständig aus Zeichenfolgen besteht.

Das folgende Beispiel zeigt, wie dieser Fehler in der Praxis behoben werden kann.

So reproduzieren Sie den Fehler

Angenommen, wir haben die folgende Liste von Werten:

#Werteliste definieren
x = [1, 'A', 2, 'B', 5, 'C', 'D', 'E']

Nehmen wir nun an, wir versuchen, jeden Nicht-Buchstaben in der Liste durch eine leere Zeichenfolge zu ersetzen:

import re

#Versuch, jeden Nicht-Buchstaben durch eine leere Zeichenfolge zu ersetzen
x = re.sub('[^a-zA-Z]', '', x)

TypeError: expected string or bytes-like object

Wir erhalten einen Fehler, da bestimmte Werte in der Liste keine Zeichenfolgen sind.

So beheben Sie den Fehler

Der einfachste Weg, diesen Fehler zu beheben, besteht darin, die Liste in ein String-Objekt umzuwandeln, indem Sie es in den str()-Operator einschließen:

import re

#Ersetze jeden Nicht-Buchstaben durch eine leere Zeichenkette
x = re.sub('[^a-zA-Z]', '', str(x))

#Ergebnisse anzeigen
print(x)

ABCDE

Beachten Sie, dass wir keinen Fehler erhalten, weil wir str() verwendet haben, um die Liste zuerst in ein String-Objekt zu konvertieren.

Das Ergebnis ist die ursprüngliche Liste, in der jeder Nicht-Buchstabe durch ein Leerzeichen ersetzt wurde.

Hinweis : Die vollständige Dokumentation zur Funktion re.sub() finden Sie hier.

Zusätzliche Ressourcen

Die folgenden Tutorials erklären, wie Sie andere häufige Fehler in Python beheben:

So beheben Sie KeyError in Pandas
Behebung: ValueError: Float NaN kann nicht in Integer konvertiert werden
Behebung: ValueError: Operanden konnten nicht zusammen mit Shapes übertragen werden

Statistik: Der Weg zur Datenanalyse

* Amazon Affiliate Link


Das könnte Sie auch interessieren: