ユニコードエスケープを元に戻す

少し古めのAPIやWebサイトとかにユニコードエスケープされた文字列が使用されている場合がありますね。

見づらいので特にデバッグ時には元に戻したいことが多いかと思いますが、python3の場合は簡単に元に戻すことができます。

まず標準ライブラリのcodecsを使用するのが一般的な方法かと思います。

サンプルを見てください。

import codecs

u_text = "\u30e6\u30cb\u30b3\u30fc\u30c9\u30a8\u30b9\u30b1\u30fc\u30d7\u3057\u305f\u30c6\u30ad\u30b9\u30c8"
text = codecs.decode(u_text.encode())
print(text) # ユニコードエスケープしたテキスト

codecs.decodeでデコードすることができます。

また、(あまり機会がないかもしれませんが)ユニコードでエスケープする場合は組込みのascii関数を使用します。

text = "ユニコードエスケープしたテキスト"
u_text = ascii(text)

print(u_text) # '\u30e6\u30cb\u30b3\u30fc\u30c9\u30a8\u30b9\u30b1\u30fc\u30d7\u3057\u305f\u30c6\u30ad\u30b9\u30c8