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: 1116
Registriert: Dienstag 9. März 2004, 18:22

Dienstag 23. Oktober 2012, 08:32

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?
Benutzeravatar
sparrow
User
Beiträge: 1831
Registriert: Freitag 17. April 2009, 10:28

Dienstag 23. Oktober 2012, 08:55

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: 1116
Registriert: Dienstag 9. März 2004, 18:22

Dienstag 23. Oktober 2012, 09:00

Ich sag ja nicht, dass es falsch ist. Ich hätte es nur gern anders. Wenn es nicht anders geht muss ich konvertieren
Benutzeravatar
sparrow
User
Beiträge: 1831
Registriert: Freitag 17. April 2009, 10:28

Dienstag 23. Oktober 2012, 09:10

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

Dienstag 23. Oktober 2012, 09:57

@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