2016-10-15 4 views
0

キリル文字を含むJSONファイルを読みたいと思います。JSONでキリル文字をエンコードする方法

キリル記号は、\u123のように表されます。

Pythonはキリル文字の代わりに'\\u123'に変換します。

たとえば、"\u0420\u0435\u0433\u0438\u043e\u043d"という文字列は"Регион"になりますが、"\\u0420\\u0435\\u0433\\u0438\\u043e\\u043d"になります。

encode()は、文字列をu"..."のようにするか、新しい\を追加するだけです。

"\u0420\u0435\u0433\u0438\u043e\u043d""Регион"に変換するにはどうすればよいですか?

+0

明確にすることはできますか?これらのファイルは*適切なJSONです。 –

+0

json str: '" \ u0420 \ u0435 \ u0433 \ u0438 \ u043e \ u043d "'; 希望: ''Регион ''; get: '' \\ u0420 \\ u0435 \\ u0433 \\ u0438 \\ u043e \\ u043d "' –

+0

JSONを逆シリアル化したら? –

答えて

0

jsonモジュールを使用してください。

import json 

s = "\u0420\u0435\u0433\u0438\u043e\u043d" 

# Generate a json file. 
with open('test.json','w',encoding='ascii') as f: 
    json.dump(s,f) 

# Reading it directly 
with open('test.json') as f: 
    print(f.read()) 

# Reading with the json module 
with open('test.json',encoding='ascii') as f: 
    data = json.load(f) 
print(data) 

出力:

"\u0420\u0435\u0433\u0438\u043e\u043d" 
Регион 
1

あなたは出力にそれに非ASCII文字が含まれている文字列をjsonをしたいなら、あなたはensure_ascii=Falseを通過した後、その後、手動でエンコードする必要があります。

+0

python3.6で完璧に動作しました – jamescampbell

関連する問題