Python: Wieso sind die beiden Strings nicht gleich?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Es wäre besser, nicht alle Daten miteinander zu vergleichen, sondern nur die Daten, die du tatsächlich miteinander vergleichen möchtest. Angenommen, du würdest die Nachrichten einmal erweitern (z.B. um einem Zeitstempel).

{ username: "...", message: "...", datetime: .... }

Dann müsstest auch daran denken, solche Codestellen wie die obige wieder anzupassen.

Doch schau zuerst nach, welchen Typ der Parameter (den ich eher in data umbenennen würde) tatsächlich hat:

print(type(data))

und passe erst im Anschluss deine if-Anweisung an. Wenn man einmal davon ausgeht, dass data ein Objekt ist, könnte sie so aussehen:

if data.username == "admin" and data.message == "hallo":

Also Python ist nicht meine Baustelle aber message wird wohl kein String sondern ein Objekt oder etwas in der Art sein. Bei deinem Beispiel sollte es so funktionieren:

if f"{message}" == command:
Woher ich das weiß:Berufserfahrung – Entwickle Anwendungen für iOS, iPadOS und macOS beruflich.

Offenbar ist message ein dict? und das andere ein String. Wenn Du die Stringrepresentation des dicts mit Deinem String vergleichen willst, dann solltest Du auch das tun:

if f"{messsage}" == command:
if message.__str__() == command:
if str(message) == command:

Wirklich sinnvoll ist eine solche Art des Vergleichens allerdings nicht.