2011-07-15 6 views
2

xlsx Pythonライブラリを使用してXLSXドキュメントを読み取っていますが、一部の列データには_x000D_のような特殊文字が含まれています。どのように元の形に変換できますか?XLSXドキュメントの特殊文字の補完

+1

Woa !! 11の質問、1つの答えは受け入れられません... –

+0

"the xlsx Python library"とは何ですか?そのようなシーケンスはデコードされないようにしてはいけません。これはあなたが作者と提起すべきバグです。 –

+0

重複http://stackoverflow.com/questions/1030522/unescape-xhhhh-xml-escape-sequences-using-python –

答えて

3

_x000D_は、16進コードポイントのUnicode文字を表すと想定されている場合は、正規表現式を使用してそれらを検索し、適切な値に変換するコールバック関数を使用できます。

import re 

input_string = "H_x00E9_llo W_x00D8_rld!" 

def parse_escaped_character_match(match): 
    return unichr(int(match.group(1), 16)) 

print re.sub("_x([0-9A-F]{4})_", parse_escaped_character_match, input_string) 
# prints "Héllo WØrld!"