Heim > Backend-Entwicklung > Python-Tutorial > Wie analysiere ich eine JSON-Datei mit mehreren JSON-Objekten in Python?

Wie analysiere ich eine JSON-Datei mit mehreren JSON-Objekten in Python?

DDD
Freigeben: 2024-12-04 02:55:10
Original
423 Leute haben es durchsucht

How to Parse a JSON File Containing Multiple JSON Objects in Python?

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))
Nach dem Login kopieren

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
Nach dem Login kopieren

Verarbeiten Sie stattdessen jedes Objekt nach Bedarf:

for line in f:
    process_object(json.loads(line))
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage