私はひどくフォーマットされた文字列データベースのデータベースを持っています。データは次のようになります。二重にエスケープされたユニコード文字列を扱う
"street"=>"\"\\u4e2d\\u534e\\u8def\""
それはこのようにする必要がありますとき:
"street"=>"中华路"
私が持っている問題は、二重にエスケープ文字列がデータベースから来るとき、彼らは中国にデコードされていないということです彼らはそうすべきである。私はこの変数を持っているとします。 street="\"\\u4e2d\\u534e\\u8def\""
と私はprint(street)
結果は、私が実際のUnicode文字に"\u4e2d\u534e\u8def"
を変換するには、この時点で何ができるのコードポイント"\u4e2d\u534e\u8def"
の文字列であることを印刷する場合は?
彼らはどのようにそこに行ったのですか?以下の答えは、それらがPythonの文字列リテラル(例えば 'repr'のもの)であると仮定しているようですが、JSON文字列(' json.loads'を使う)や '\ u'エスケープ潜在的に異なるエッジケースを有する。間違ったフォーマットを選択すると、より多くのマングリングが発生する可能性があります。 – bobince