2012-08-01 19 views
18

Dumping una cadena que contiene caracteres Unicode como JSON produce secuencias de escape Unicode extraños:Python JSON load/dumps rompe Unicode?

text = "⌂⚘いの法嫁" 
print(text) # output: ⌂⚘いの法嫁 

import json 
json_text = json.dumps(text) 
print(json_text) # output: "\u2302\u2698\u3044\u306e\u6cd5\u5ac1" 

me gustaría conseguir este lugar de salida:

"⌂⚘いの法嫁" 

Cómo puedo volcar me caracteres Unicode como caracteres en lugar de secuencias de escape?

+0

¿qué tal: json_string = unicode (r.text) – zinking

+1

No está roto; '\ u' _four-hex-digits_ es una representación permitida de un carácter Unicode en JSON. –

Respuesta

31

llamada json.dumps con ensure_ascii=False:

json_string = json.dumps(json_dict, ensure_ascii=False) 

En Python 2, el valor de retorno será unicode en lugar de str, por lo que es posible que desee encode antes de hacer cualquier otra cosa con él.