JSONでは文字列をUnicodeエスケープします。
そのため”\u672c\u65e5\u306f\u6674\u5929\u306a\u308a”のような意味不明の文字列になっています。
fn_json = "xxxxx.json"
with open(fn_json) as f:
records = json.load(f)
with open(fn_json) as f:
records = json.load(f)
上のようにすると配列(リスト)に変換され、このときエスケープされた文字列も元に戻ります。
では単にエスケープされた文字列を元に戻すにはどうすればいいでしょうか。
text = "\u672c\u65e5\u306f\u6674\u5929\u306a\u308a"
text_decode = text_escape.encode().decode("unicode-escape")
print(text_decode)
text_decode = text_escape.encode().decode("unicode-escape")
print(text_decode)
上のようにすると「本日は晴天なり」となります。
逆に単にエスケープする場合は次のようにします。
text = "本日は晴天なり"
text_escape = ascii(text)
print(text_escape)
text_escape = ascii(text)
print(text_escape)
コメント