• Wir präsentieren Dir heute ein Stellenangebot für einen Frontend-Entwickler Angular / Java in Braunschweig. Hier geht es zur Jobanzeige

Python - JSON Sortieren

Kirby.exe

Kirby.exe

Top Contributor
Alsoo vielleicht denke ich zu kompliziert...aber wie kann ich ein JSON mit einem Comparison Sort (z.B. Insertion Sort) sortieren? Es verwirrt mich, da man auf ein Dict ja nicht per Index sondern per Element zugreift xD Ich überlege einfach ein Radix Sort mit Bitmaske zu probieren, aber ich habe das Gefühl dass es auch ohne Radix Sort geht xD

Hier ist die JSON Datei:
JSON:
{"285738920505901056": {"xp": 165, "level": 3, "rank": 1}, "695611095494164551": {"xp": 240, "level": 3, "rank": 1}, "696261977500287086": {"xp": 5, "level": 1, "rank": 1}, "216612526014595083": {"xp": 20, "level": 2, "rank": 1}, "159985870458322944": {"xp": 15, "level": 1, "rank": 1}, "451025680004546560": {"xp": 5, "level": 1, "rank": 1}}

Ich möchte die Einträge gerne absteigen nach "xp" sortieren :)
 
Kirby.exe

Kirby.exe

Top Contributor
Ich habe gerade darüber nachgedacht und das mit Non-Comparison Sort wird nicht funktionieren, da das die Zahlenmenge zu groß ist.

Ich habe es jetzt mittels Merge Sort gemacht :)
 
Zuletzt bearbeitet:
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Ein Json-Objekt kann man nicht sortieren, dass ist spezifiziert als ungeordnet.

Und wenn du von Dict sprichst, willst du vermutlich eher ein Python-Dict sortieren, anstatt Json?
 
Kirby.exe

Kirby.exe

Top Contributor
Also das JSON wird geladen und dann als Dict interpretiert xD Jedoch war dort das Problem das dieses ebenfalls ungeordnet ist...Ich habe mir dann einfach die User ID und den XP Value genommen und diese als "Tuppel" in eine List gespeichert. Diese habe ich anschließend sortiert. Danach musst ich nur noch durch die Liste Iteriren und bei jedem Dict eintrag den Rank dem entsprechend anpassen :)
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Ich habe mir dann einfach die User ID und den XP Value genommen und diese als "Tuppel" in eine List gespeichert. Diese habe ich anschließend sortiert. Danach musst ich nur noch durch die Liste Iteriren und bei jedem Dict eintrag den Rank dem entsprechend anpassen :)
Falls es nur um das anpassen des Rangs geht, klingt das nach einer sinnvollen Lösung :)

Einfacher wäre es wohl gewesen das JSON in eine ArrayList zu packen....
Gibt keine ArrayList in Python, außerdem müsste man dafür die ganze Struktur ändern...
 

Ähnliche Java Themen

Anzeige

Neue Themen


Oben