JSON: Dict Key als Integer speichern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Hi,
ich möchte ein Dict in einer JSON Datei speichern. Der Key ist ein Integer. Leider speichert JSON den Key als String, weshalb ich immer konvertieren muss.

Kann ich den Key beim Speichern irgendwie als Integer speichern?
Das schwierigste beim Programmieren ist, sinnvolle Variablen- und Funktionsnamen zu finden :lol:
Benutzeravatar
sparrow
User
Beiträge: 4183
Registriert: Freitag 17. April 2009, 10:28

In JSON heißt diese Art der Liste "object" und beinhaltet tatsächlich Paare von Name: Wert, wobei Name eine Zeichenkette ist. Die Python-Bibliothek macht also alles richtig.
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Ich sag ja nicht, dass es falsch ist. Ich hätte es nur gern anders. Wenn es nicht anders geht muss ich konvertieren
Das schwierigste beim Programmieren ist, sinnvolle Variablen- und Funktionsnamen zu finden :lol:
Benutzeravatar
sparrow
User
Beiträge: 4183
Registriert: Freitag 17. April 2009, 10:28

Hast du es schon mit dem parse_int -Parameter von json.loads() versucht?
BlackJack

@sparrow: Das bringt nichts. Die Funktion wird auf ganze Zahlen aus dem JSON angewendet, und nicht auf Zeichenketten. Das kann man zum Beispiel benutzen wenn man alle Zahlen im JSON als Gleitpunktzahlen haben möchte:

Code: Alles auswählen

In [223]: json.loads('{"42":42}', parse_int=int)
Out[223]: {u'42': 42}

In [224]: json.loads('{"42":42}', parse_int=float)
Out[224]: {u'42': 42.0}
Antworten