Analyse de l'entrée unicode à l'aide de python json.loads
Quelle est la meilleure façon de charger de Chaînes JSON en Python?
Je veux utiliser json.les charges de processus unicode comme ceci:
import json
json.loads(unicode_string_to_load)
J'ai aussi essayé la fourniture de "encodage" du paramètre avec la valeur "utf-16", mais l'erreur n'a pas disparu.
Plein SSCCE avec l'erreur:
# -*- coding: utf-8 -*-
import json
value = '{"foo" : "bar"}'
print(json.loads(value)['foo']) #This is correct, prints 'bar'
some_unicode = unicode("degradé")
#last character is latin e with acute "\xe3\xa9"
value = '{"foo" : "' + some_unicode + '"}'
print(json.loads(value)['foo']) #incorrect, throws error
Erreur:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position
6: ordinal not in range(128)
source d'informationauteur Software Enthusiastic
Vous devez vous connecter pour publier un commentaire.
Je typecasting de la chaîne en chaîne unicode à l'aide de "latin-1" correction de l'erreur:
Code fixe:
Et puis l'erreur n'est pas levée.
L'OP précise (dans un commentaire!)...:
Alors vous devez savoir qui de nombreux encodages unicode il utilise -- clairement pas "utf-16", puisque les qui a échoué, mais il existe beaucoup d'autres -, 'utf-8', 'iso-8859-15", et ainsi de suite. Soit vous essayez-les tous jusqu'à ce que l'on travaille, ou
print repr(str_to_load[:80])
et collez ce qu'il montre comme une modification de votre question, afin que nous puissions deviner sur votre nom!-).La façon la plus simple que j'ai trouvé est
de cette façon, votre code reste le même
référence: https://simplejson.readthedocs.org/en/latest/
Avec django, vous pouvez utiliser SimpleJSON et utiliser des charges au lieu de simplement charger.