Heim >Backend-Entwicklung >Python-Tutorial >Warum erhalte ich „ValueError: Extra Data', wenn ich Pythons json.loads verwende?
Fehler: „ValueError: Extra data“ bei Verwendung von Pythons json.loads
Bei Verwendung von Pythons json.loads-Funktion zum Parsen einer JSON-Datei , kann es zu folgendem Fehler kommen:
ValueError: Extra data: line 88 column 2 - line 50607 column 2 (char 3077 - 1868399)
Dieser Fehler weist darauf hin, dass zusätzliche Daten vorhanden sind in der JSON-Datei, die nicht Teil einer gültigen JSON-Struktur ist.
Ursache
Der Fehler tritt normalerweise auf, wenn die JSON-Datei mehr als ein JSON-Objekt pro Zeile enthält. json.loads erwartet ein einzelnes JSON-Objekt als Eingabe, aber wenn nach dem ersten Objekt zusätzlicher Inhalt vorhanden ist, wird der Fehler „zusätzliche Daten“ ausgelöst.
Beispiel-JSON
Betrachten Sie zum Beispiel diese Beispiel-JSON-Datei:
{"id": 123, "name": "John"} { "id": 456, "name": "Jane" }
Diese Datei enthält zwei JSON-Objekte, aber jedes Objekt befindet sich nicht in einer separaten Zeile. Wenn json.loads auf das erste Objekt trifft, versucht es, es zu analysieren und den Fehler auszulösen, wenn es das zweite Objekt erreicht.
Lösung
Die Lösung für diesen Fehler soll sicherstellen, dass sich jedes JSON-Objekt in einer eigenen Zeile in der Datei befindet. Dies kann durch manuelles Bearbeiten der Datei oder durch die Verwendung eines Tools zum Neuformatieren des JSON erfolgen.
Iteratives Parsen
Wenn die JSON-Datei groß ist und viele JSON-Objekte enthält , Sie können auch einen iterativen Ansatz verwenden, um die Datei zu analysieren, ohne die gesamte Datei in den Speicher zu laden.
import json tweets = [] with open('tweets.json', 'r') as file: for line in file: tweets.append(json.loads(line))
Bei diesem Ansatz wird die Die Datei wird Zeile für Zeile iteriert und jede Zeile wird als JSON-Objekt analysiert. Dadurch wird das Speichern von Python-Zwischenobjekten vermieden und ist bei großen Dateien effizienter.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich „ValueError: Extra Data', wenn ich Pythons json.loads verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!