Heim  >  Artikel  >  Backend-Entwicklung  >  So vermeiden Sie Fehler beim Zugriff auf JSON-Daten aus Python-Wörterbüchern

So vermeiden Sie Fehler beim Zugriff auf JSON-Daten aus Python-Wörterbüchern

Barbara Streisand
Barbara StreisandOriginal
2024-10-20 21:07:02435Durchsuche

How to Avoid Errors When Accessing JSON Data from Python Dictionaries

JSON-Kodierung/Dekodierung mit Python

Für einen nahtlosen Datenaustausch und eine reibungslose Datenspeicherung ist die Konvertierung von Python-Wörterbüchern in JSON (JavaScript Object Notation) üblich Erfordernis. Beim Versuch, auf JSON-Daten aus einem Wörterbuch zuzugreifen, können jedoch unerwartete Fehler auftreten.

Fehler aufgetreten:

Beachten Sie den folgenden Codeausschnitt:

<code class="python">r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
file.write(str(r['rating']))</code>

Beim Versuch, über den JSON-String auf den Schlüssel „rating“ zuzugreifen, tritt der Fehler „TypeError: String-Indizes müssen Ganzzahlen sein, nicht str“ auf. Dieser Fehler tritt auf, weil json.dumps() das Wörterbuch „r“ in eine Zeichenfolge konvertiert, nicht in ein tatsächliches JSON-Objekt oder Wörterbuch.

Richtiger Ansatz:

Zur Lösung Um dieses Problem zu lösen, verwenden Sie die Methode json.loads(), um die JSON-Zeichenfolge wieder in ein Wörterbuch zu laden. Dadurch können Sie wie folgt auf den Schlüssel „Bewertung“ zugreifen:

<code class="python">import json

r = {'is_claimed': 'True', 'rating': 3.5}
r = json.dumps(r)
loaded_r = json.loads(r)
print(loaded_r['rating'])</code>

Die Unterscheidung verstehen:

json.dumps() speichert ein Wörterbuch als Zeichenfolge. während json.loads() es als Wörterbuch abruft. Denken Sie daran, json.dumps() beim Serialisieren von Daten und json.loads() beim Deserialisieren zu verwenden.

Das obige ist der detaillierte Inhalt vonSo vermeiden Sie Fehler beim Zugriff auf JSON-Daten aus Python-Wörterbüchern. 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