2012-08-01 15 views
18

Dumping ciąg, który zawiera znaki Unicode jako json wywołuje dziwne sekwencje Unicode ucieczki:Python JSON ładuje/zrzuca łamie Unicode?

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

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

chciałbym dostać to wyjście Zamiast:

"⌂⚘いの法嫁" 

Jak mogę zrzucić znaki Unicode jako znaki zamiast sekwencji ucieczki?

+0

co powiecie na: json_string = unicode (r.text) – zinking

+1

To nie jest zepsute; '\ u' _four-hex-digits_ jest dozwoloną reprezentacją znaku Unicode w JSON. –

Odpowiedz

31

połączeń json.dumps z ensure_ascii=False:

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

W Pythonie 2, wartość zwracana będzie unicode zamiast str, więc może chcesz encode nim zanim cokolwiek innego z nim.