Mehrere JSON-Objekte aus einer einzelnen Datei extrahieren
Wenn Sie auf eine JSON-Datei stoßen, die zahlreiche JSON-Objekte enthält, ist ein umfassender Ansatz unerlässlich Extrahieren spezifischer Daten. Dieser Artikel befasst sich mit einer Lösung zum Extrahieren von „Timestamp“- und „Nützlichkeits“-Werten aus einer solchen Datei.
Die bereitgestellte JSON-Dateistruktur weist gestapelte JSON-Objekte auf. Um die gewünschten Daten zu analysieren und abzurufen, sollten Sie die Funktion json.JSONDecoder.raw_decode verwenden. Diese Funktion ermöglicht die Dekodierung beliebig großer JSON-Strings unter Einhaltung von Speicherbeschränkungen.
Es ist jedoch wichtig zu beachten, dass das Python-JSON-Modul keine Strings mit vorangestelltem Leerzeichen akzeptiert. Daher wird ein regulärer Ausdruck verwendet, um nach dem ersten Nicht-Leerzeichen zu suchen, das als Ausgangspunkt für die Analyse dient.
Unten finden Sie eine überarbeitete Lösung, die dieses Problem behebt:
<code class="python">from json import JSONDecoder, JSONDecodeError import re NOT_WHITESPACE = re.compile(r'\S') def decode_stacked(document, pos=0, decoder=JSONDecoder()): while True: match = NOT_WHITESPACE.search(document, pos) if not match: return pos = match.start() try: obj, pos = decoder.raw_decode(document, pos) except JSONDecodeError: # do something sensible if there's some error raise yield obj</code>
Das überarbeitete Code-Snippet analysiert effektiv die gestapelten JSON-Objekte innerhalb des angegebenen Dokuments und gibt jedes Objekt zurück, sobald es darauf trifft. Dieser Ansatz vermeidet die Einschränkungen der herkömmlichen JSON-Analyse und eignet sich daher für die Verarbeitung großer und möglicherweise komplexer JSON-Dateien.
Das obige ist der detaillierte Inhalt vonSo extrahieren Sie mehrere JSON-Objekte aus einer einzelnen Datei: Eine Pythonic-Lösung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!