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!