Ich habe eine Konfigurationsdatei in JSON, die ein paar Variablen als Strings enthält (immer ascii). Diese Strings werden standardmäßig zu Unicode dekodiert, aber da ich diese Variablen an meine Python C Extensions weitergeben muss, brauche ich sie als normale Python Strings. Im Moment verwende ich str(unicode)
, um die JSON-Strings zu konvertieren, aber eine elegantere und weniger ausführliche Lösung wäre sehr willkommen.
Gibt es eine Möglichkeit, die Standardübersetzung von String in Unicode mit einem benutzerdefinierten JSONDecoder
oder Objekt-Hook zu ändern?
Sehen Sie, ob die Antworten auf diese Frage Ihnen helfen (in dieser Frage verwendete der Fragesteller json.loads
).
Ich habe eine Konfigurationsdatei in JSON, die ein paar Variablen als Strings enthält (immer ascii). Diese Strings werden standardmäßig zu Unicode dekodiert, aber da ich diese Variablen an meine Python C Extensions weitergeben muss, brauche ich sie als normale Python Strings. Im Moment verwende ich str
, um die JSON-Strings zu konvertieren, aber eine elegantere und weniger ausführliche Lösung wäre sehr willkommen.
Gibt es eine Möglichkeit, die Standardübersetzung von String in Unicode mit einem benutzerdefinierten loads
oder Objekt-Hook zu ändern?
Nicht, wenn Sie nicht bereit sind, etwas Geschwindigkeit zu verlieren. Wenn etwas langsamer ist OK, müssen Sie berücksichtigen, dass die Verwendung von plain %code% und die rekursive Konvertierung in %code% wahrscheinlich billiger und vielleicht schneller ist.
Wenn Sie eine %code% brauchen, die Strings schlecht genug zurückgibt , um einen Erweiterungscode zu akzeptieren, der eigentlich nicht gemeint war, dann gibt es hier ein mögliches Ergebnis (meistens durch copy-n-paste) ) das war scheußlich, danke Lennart dafür, dass ich das Licht gesehen habe (dh, du musst nur JSONDecoder und ein paar Tricks erweitern):
Sehen Sie, ob die Antworten auf diese Frage Ihnen helfen (in dieser Frage verwendete der Fragesteller simplejson
).