PythonでJSONを扱う際、Unicodeエスケープの扱いは重要なトピックです。特に、json.dumps
関数を使ってJSON文字列を生成する際、デフォルトではUnicode文字は\uXXXX
形式でエスケープされます。しかし、この形式は人間にとって読みやすいものではありません。
幸いなことに、Pythonのjson.dumps
関数はensure_ascii=False
オプションを提供しています。このオプションを使用すると、Unicode文字は\uXXXX
形式ではなく、そのままのUTF-8文字として出力されます。
以下に具体的なコードを示します。
import json
# Unicode文字列
unicode_string = "こんにちは"
# ensure_ascii=Falseを指定してJSON文字列を生成
json_string = json.dumps(unicode_string, ensure_ascii=False)
print(json_string)
このコードを実行すると、出力は"こんにちは"
となり、Unicodeエスケープされていません。
ただし、注意点として、ensure_ascii=False
を指定した場合、json.dumps
関数の戻り値はPython 2ではunicode
型、Python 3ではstr
型となります。そのため、その後の処理によっては、適切にエンコーディングを行う必要があります。
以上、PythonとJSONのUnicodeエスケープの扱いについて解説しました。この知識を活用して、PythonでのJSON操作をよりスムーズに行いましょう。