Diese Art von Wörterbuch bewahrt die Einführungsreihenfolge der Elemente.
json.load(fp[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])
Deserialize fp (a .lesen() - Unterstützung von Datei-ähnliche Objekts ein JSON Dokument enthält) zu einem Python-Objekt.
Wenn der Inhalt von fp mit einer ASCII-basierten Codierung anderer als UTF-8 (z. B. latin-1) codiert wird, muss ein entsprechender Codierungsname angegeben werden. Kodierungen, die nicht ASCII-basiert sind (wie UCS-2), sind nicht erlaubt und sollten mit codecs.getreader (encoding) (fp) oder einfach in ein Unicode-Objekt dekodiert und an loads() übergeben werden.
object_hook ist eine optionale Funktion, die mit dem Ergebnis eines beliebigen dekodierten Objektliterals (ein dict) aufgerufen wird. Der Rückgabewert object_hook wird anstelle des dict verwendet. Diese Funktion kann verwendet werden, um benutzerdefinierte Decoder zu implementieren (z. B. JSON-RPC-Klassenhinweis).
object_pairs_hook ist eine optionale Funktion, die mit dem Ergebnis eines beliebigen Objektliterals mit einer geordneten Liste von Paaren dekodiert wird. Der Rückgabewert von object_pairs_hook wird anstelle des dict verwendet. Mit dieser Funktion können benutzerdefinierte Decoder implementiert werden, die in der Reihenfolge verwenden, in der die Schlüssel- und Wertepaare dekodiert werden (z. B. collections.OrderedDict() speichert die Reihenfolge der Einfügung). Wenn object_hook ebenfalls definiert ist, hat der object_pairs_hook Priorität.
Python-Dictionaries ungeordnete sind, was in Ordnung ist, weil normalerweise die Einträge zugreifen * von Taste *, und wenn Sie über die Elemente zu durchlaufen haben, die Ordnung spielt normalerweise keine Rolle. Btw, 's' ist weder ein String noch ein Wörterbuch, das nicht gültig ist, wenn JSON eine Zeichenfolge ist. Es sieht so aus, als ob Sie nach einer anderen Struktur suchen, zum Beispiel nach einem Array von Objekten: '[{" name ":" ... "," price ":" ... "}, ...]'. Wenn Sie eine Erklärung für * warum * geben, benötigen Sie die Schlüssel in der richtigen Reihenfolge und liefern ein korrektes Beispiel, dann können wir Ihnen besser helfen. –
Es gibt nicht wirklich so etwas wie "Reihenfolge der Schlüssel" in einem "Diktat". Sie können nacheinander über sie hinweg iterieren, aber es gibt keine Kontrolle darüber, in welcher Reihenfolge Sie sie erhalten. –
Ich denke [diese vorherige] (http: // stackoverflow.com/questions/6921699/can-i-get-json-zu-laden-in-einem-ordereddict-in-python) Frage hier auf Stackoverflow bietet eine Antwort. – Alvin