Laden und Parsen einer JSON-Datei mit mehreren JSON-Objekten
Im Gegensatz zu Standard-JSON-Dateien, die alle Daten in einem einzelnen Objekt oder Array kapseln, Bestimmte JSON-Formate speichern einzelne Objekte als separate Zeilen in einer Textdatei. Dies kann zu Herausforderungen führen, wenn versucht wird, eine solche Datei in Python zu analysieren.
Behebung des ValueError
Bei Verwendung der json.load()-Funktion von Python zum Laden einer JSON-Datei Bei mehreren Objekten kann die Ausnahme „ValueError: Extra data“ auftreten. Dieser Fehler weist darauf hin, dass die Datei nach dem ersten analysierten Objekt unerwartete Daten enthält.
Lösung: Zeile-für-Zeile-Analyse
Um dieses Problem zu beheben, müssen Sie Folgendes behandeln jede Zeile in der Datei als unabhängiges JSON-Objekt. Ersetzen Sie Ihren aktuellen Code durch Folgendes:
import json data = [] with open('file') as f: for line in f: data.append(json.loads(line))
Dieser Code durchläuft jede Zeile in der Datei, analysiert sie als JSON-Objekt und hängt es an eine Liste an.
Überlegungen zu großen Dateien
Wenn die JSON-Datei besonders groß ist, kann das Anhängen aller Objekte an eine einzelne Liste übermäßig viel Speicher verbrauchen. Um dies zu verhindern, verarbeiten Sie jedes Objekt einzeln, bevor Sie mit der nächsten Zeile fortfahren. Vermeiden Sie Folgendes:
data = [] # List of all objects
Verarbeiten Sie stattdessen jedes Objekt nach Bedarf:
for line in f: process_object(json.loads(line))
Umgang mit durch Trennzeichen getrennten JSON-Objekten
Wenn Ihre JSON-Datei einzelne Objekte enthält Durch Trennzeichen wie Kommas oder Zeilenumbrüche getrennte Objekte können Sie mit der folgenden Technik analysieren Objekt:
import json, io # Read delimited JSON objects from a file with open('file') as f: json_string = f.read() # Create a buffered reader json_buffer = io.StringIO(json_string) while True: # Read next JSON object from the buffer json_object = json.load(json_buffer) # Process JSON object if not json_object: # Reached the end of the file break
Das obige ist der detaillierte Inhalt vonWie analysiere ich eine JSON-Datei mit mehreren JSON-Objekten in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!