0

PythonでcsvをJSONにインポートしようとしています:

myjson = list()
with open("stuff.csv","rU") as f:
    vals = csv.DictReader(f)
    for i in vals:
        myjson.append(i)

csv の DictReader() を使用すると、ほとんどすべてのレコードで一見無効な Unicode 文字が表示されることがよくあります。

\xc9

...テキストフィールドで。私の知る限り、これは逆さまの e に対して有効な Unicode 文字です。ただし、長い文字列に埋め込まれているため、これは実際にはエンコードされていないようであり、キー全体は unicode ではなく str 型です。

これは私が与えられたデータ エントリまたは csv モジュールの遺物だと思いますが、フラグ、タグ、または変換によってこれを適切に処理する CSV を読み取る別の方法はありますか?

4

1 に答える 1

0

Python 文字列リテラルを見ています。\xc9シーケンスはエスケープ コードであり、Python は、出力できないコードポイントまたはコードポイント 128 を超えるコードポイントに対して使用します。コードポイントが 255 を超える場合は、\uxxxx代わりにエスケープ シーケンスが使用されます。

デフォルトでは、Python はリストや辞書などのコンテナに含まれる値の表現を出力します。Unicode 値の表現 (repr()関数の結果) は、python 文字列リテラルとして出力されます。

>>> print [u'Hello: \xc9']
[u'Hello: \xc9']
>>> print [u'Hello: \xc9'][0]
Hello: É
于 2013-07-16T14:24:00.750 に答える