web-dev-qa-db-fra.com

Convertir unicode json en json normal en python

J'ai obtenu le json suivant: {u'a': u'aValue', u'b': u'bValue', u'c': u'cValue'} en faisant request.json dans mon code python. Maintenant, je veux convertir le json unicode en json normal, quelque chose qui devrait ressembler à ceci: {"a": "aValue", "b": "bValue", "c": "cValue"}. Comment puis-je faire cela, sans avoir à faire de remplacements manuels? S'il vous plaît aider.

7
Sanjiban Bairagya

{u'a ': u'aValue', u'b ': u'bValue', u'c ': u'cValue'} est un dictionnaire que vous appelez unicode json. Maintenant, dans votre langue, si vous voulez un json régulier à partir de ceci, alors faites quelque chose comme ça:

x={u'a': u'aValue', u'b': u'bValue', u'c': u'cValue'}
y=json.dumps(x)
print y

Le résultat sera {"a": "aValue", "c": "cValue", "b": "bValue"}

12
nirprat

Pour Python 2.x

import yaml
import json
json_data = yaml.load(json.dumps(request.json()))

Maintenant, ce json_data peut être utilisé comme un json et peut avoir une liste de json.

4
deusxmachine

Vous pouvez utiliser une compréhension de liste pour coder toutes les clés et valeurs en tant qu'ascii comme ceci:

dict([(k.encode('ascii','ignore'), v.encode('ascii','ignore')) for k, v in dct.items()])

Remarque: il est généralement peu avantageux de ne pas avoir vos données en unicode. Par conséquent, à moins que vous n'ayez une raison particulière de ne pas les avoir en unicode, je les laisse.

0
Natecat