Konvertieren Sie OrderedDict zu normalem dict beibehalten bestellen?

Wie kann ich ein OrderedDict in ein normales Wörterbuch umwandeln und dabei die gleiche Reihenfolge OrderedDict ?

Der Grund, warum ich das json.loads(str) ist, weil ist, wenn ich meine Daten von einer API holen, bekomme ich eine JSON-String, in der ich json.loads(str) , um ein Wörterbuch zurückzugeben. Dieses Wörterbuch, das von json.loads(...) ist einfach außer Betrieb und wird zufällig bestellt. Auch habe ich gelesen, dass OrderedDict ist langsam zu arbeiten mit so möchte ich regelmäßige dict in der gleichen Reihenfolge wie Original JSON String verwenden.

  • Wie benutzerdefinierte Sortierung einer Liste von dict in json.dumps verwenden
  • Scrapy :: Probleme mit JSON Export
  • Fix unquoted Schlüssel in JSON-ähnliche Datei, so dass es korrekte JSON-Syntax verwendet
  • Pickle oder Json?
  • Format python Ausgabe zu json
  • Benutzerdefiniertes Json-Format von Pandas DataFrame
  • Etwas off-topic: Gibt es sowieso einen JSON-String in einen Dict mit json.loads(...) zu konvertieren, während er die gleiche Reihenfolge beibehält, ohne collections.OrderedDict ?

    2 Solutions collect form web for “Konvertieren Sie OrderedDict zu normalem dict beibehalten bestellen?”

    Wenn du ein OrderedDict zu einem normalen dict OrderedDict , kannst du nicht garantieren, dass die Bestellung erhalten bleibt, weil die Dicts ungeordnet sind. Welches ist also, dass OrderedDict an erster Stelle existiert.

    Es scheint, als hättest du versucht deinen Kuchen zu haben und es auch zu essen. Wenn Sie möchten, dass die Reihenfolge der JSON-Zeichenfolge beibehalten wird, verwenden Sie die Antwort aus der Frage, die ich in den Kommentaren verknüpft habe, um Ihre json-Zeichenfolge direkt in ein OrderedDict zu OrderedDict . Aber du musst dich mit jeder Leistungsstrafe auseinandersetzen, die sich trägt (ich weiß nicht, was diese Strafe ist. Es kann sogar für dich nützlich sein.). Wenn Sie die bestmögliche Leistung wünschen, verwenden Sie einfach dict . Aber es wird ungeordnet sein.

    Sowohl JSON-Objekte als auch Python-Dicts sind ungeordnet. Um die Reihenfolge zu bewahren, verwenden Sie JSON-Arrays, die auf Python-Listen abgebildet sind. Elemente von JSON-Arrays sollten JSON-Objekte sein. Diese werden auf Python-Listen von Python-Dicts abgebildet.

    Python 3:

     from collections import OrderedDict import json # Preserving order in Python dict: ordered_dict = OrderedDict([ ('a', 1), ('b', 2), ('c', 3), ]) # Convert to JSON while preserving order: ordered_list = [{key: val} for key, val in ordered_dict.items()] json.dumps(ordered_list) # '[{"a": 1}, {"b": 2}, {"c": 3}]' 

    Javascript (JSON):

     var orderedListStr = '[{"a": 1}, {"b": 2}, {"c": 3}]'; // We will receive this array of objects with preserved order: var orderedList = JSON.parse(orderedListStr) 
    Python ist die beste Programmiersprache der Welt.