Heim  >  Artikel  >  Backend-Entwicklung  >  Achten Sie beim Konvertieren von Wörterbüchern in JSON auf diese häufige Gefahr

Achten Sie beim Konvertieren von Wörterbüchern in JSON auf diese häufige Gefahr

DDD
DDDOriginal
2024-10-20 21:02:02748Durchsuche

When Converting Dictionaries to JSON, Watch Out For This Common Pitfall

Fallstricke beim Konvertieren von Wörterbüchern in JSON

Bei der Arbeit mit JSON-Daten ist es wichtig, den Unterschied zwischen JSON-Objekten und Zeichenfolgendarstellungen von JSON zu verstehen. Diese Unterscheidung wirkt sich darauf aus, wie wir die Daten bearbeiten und darauf zugreifen.

Im bereitgestellten Code:

import json

r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
file.write(str(r['rating']))

Das Problem entsteht durch die Verwendung von json.dumps() gefolgt von einem Versuch, auf a zuzugreifen Schlüssel aus der resultierenden Zeichenfolge. json.dumps() konvertiert ein Wörterbuch in eine String-Darstellung des JSON-Objekts, nicht in ein JSON-Objekt selbst. Dies bedeutet, dass wir nicht direkt über die Zeichenfolge auf Eigenschaften des JSON-Objekts zugreifen können.

Um dieses Problem zu beheben, müssen wir json.loads() verwenden, um die Zeichenfolge zurück in ein JSON-Objekt zu konvertieren. Dadurch können wir mithilfe der Punktnotation oder Schlüssel-Wert-Paaren auf die Eigenschaften des JSON-Objekts zugreifen.

<code class="python">import json

r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)  # Converts to a JSON string
loaded_r = json.loads(r)  # Converts back to a JSON object
print(loaded_r['rating'])  # Accesses the 'rating' property</code>

In diesem überarbeiteten Code konvertieren wir zunächst das Wörterbuch mithilfe von json.dumps() in einen String. Anschließend verwenden wir json.loads(), um die Zeichenfolge zurück in ein JSON-Objekt zu konvertieren. Wir können nun über die bekannte Punktnotation auf die Eigenschaft „Bewertung“ zugreifen.

Das obige ist der detaillierte Inhalt vonAchten Sie beim Konvertieren von Wörterbüchern in JSON auf diese häufige Gefahr. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn