Ich versuche ein einfaches Datendateiformat einzurichten, und ich arbeite mit diesen Dateien in Python zur Analyse. Das Format besteht im Wesentlichen aus Header-Informationen, gefolgt von den Daten. Für Syntax- und zukünftige Erweiterbarkeitsgründe möchte ich ein JSON-Objekt für die Header-Information verwenden. Eine Beispieldatei sieht wie folgt aus:optimale Methode zum Analysieren eines JSON-Objekts in einer Datei
{
"name": "my material",
"sample-id": null,
"description": "some material",
"funit": "MHz",
"filetype": "material_data"
}
18 6.269311533 0.128658208 0.962033017 0.566268827
18.10945274 6.268810641 0.128691962 0.961950095 0.565591807
18.21890547 6.268312637 0.128725463 0.961814928 0.564998228...
Wenn die Datenlänge/Struktur immer gleich ist, das ist nicht schwer zu analysieren. Es brachte mir jedoch eine Frage über die flexibelste Möglichkeit, das JSON-Objekt zu analysieren, mit einer unbekannten Anzahl von Zeilen und einer unbekannten Anzahl geschachtelter geschweifter Klammern und möglicherweise mehr als einem JSON-Objekt in der Datei.
Wenn nur ein JSON-Objekt in der Datei ist, kann man diesen regulären Ausdruck verwenden:
with open(fname, 'r') as fp:
fstring = fp.read()
json_string = re.search('{.*}', fstring, flags=re.S)
Wenn jedoch mehr als ein JSON-String ist, und ich möchte den ersten packen, ich muss so etwas verwenden:
Ich denke die Frage wie immer: Gibt es einen besseren Weg, dies zu tun? Lieber einfacherer Code, flexiblerer Code, robusterer Code oder wirklich alles?
bearbeiten möchten Verwenden Sie JSON für alle Daten, eine JSON-Struktur pro Datei. –