Ich habe eine Zeichenfolge, die die Eigenschaften eines Anforderungsereignisses auflistet.Wie analysiert man einen String, der wie JSON aussieht, mit vielen eingebetteten Klassen in Python?
Meine Zeichenfolge wie folgt aussehen:
requestBody: {
propertyA = 1
propertyB = 2
propertyC = {
propertyC1 = 1
propertyC2 = 2
}
propertyD = [
{ propertyD1 = { propertyD11 = 1}},
{ propertyD1 = [ {propertyD21 = 1, propertyD22 = 2},
{propertyD21 = 3, propertyD22 = 4}]}
]
}
ich versucht habe, die "="
mit ":"
so zu ersetzen, dass ich es in einen JSON-Reader in Python setzen kann, aber JSON erfordert auch, dass Schlüssel und Wert in String gespeichert werden mit doppelten Anführungszeichen und einem ","
, um jedes KV-Paar zu trennen. Dies wurde dann ein wenig kompliziert zu implementieren. Was sind einige bessere Ansätze für die Analyse dieses in Python-Wörterbuch mit genau der gleichen Struktur (z. B. eingebettete Wörterbücher sind ebenfalls erhalten)?
Frage: Wenn ich einen vollständigen Parser schreiben würde, was ist das Hauptmuster, das ich angehen sollte? Klammern in einem Stapel speichern, bis die Klammer vollständig ist?
Es scheint konsequent definiert. Schreiben Sie einen vollständigen Parser von Grund auf neu? – usr2564301
Ich verstehe, mehrere Eigenschaften innerhalb '{}' 's als eine Art verschachteltes Objekt (wie' propertyC') zu definieren, und ich verstehe mehrere Objekte innerhalb '[]' s als ein Array von Objekten (wie in 'propertyD2'). Aber was ist beabsichtigt, wenn Sie mehrere Eigenschaften innerhalb von [] haben (wie in 'propertyD')? Sollte dies wirklich ein Objekt in {} 's sein, mit den Eigenschaften 'propertyD1' und' propertyD2'? – PaulMcG
Es scheint auch, dass Listenelemente manchmal durch Kommas getrennt und manchmal durch Zeilentrennzeichen getrennt sind. Zum Beispiel soll es nach der Definition von 'propertyA' ein Komma geben? – PaulMcG