###前提・実現したいこと
numpy genfromtxt でutf-8ファイルに書かれた日本語を読み込む際に、UnicodeDecodeErrorが出てしまいます。
###発生している問題・エラーメッセージ
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 1: ordinal not in range(128)
###該当のソースコード
python3.4
1import numpy as np 2data = np.genfromtxt("hoge.tsv", delimiter="\t", names=True, dtype=float, converters={1: lambda x: x.decode('utf_8')})
###試したこと
hoge.tsvはutf-8できちんとコーディングできていることを確認しています。
一行目がヘッダー、二行目以下は小数や整数が並んでいます。
一行目のヘッダーのところにのみ日本語が用いられていて、
「日付_2015年」「性別」のようなヘッダーがついています。
ヘッダー行を抜かしたファイルを作成したところ、正しく読み込むことができました。
python3.4
1import sys 2sys.getdefaultencoding()
この結果は
'utf-8'
とpython自体のデフォルトはutf-8であることは確認しています。
###補足情報(言語/FW/ツール等のバージョンなど)
python3.4, OSX 10.9.5, numpy 1.11.0 を用いています。
どのようにすればヘッダー行を読み込むことができるのでしょうか。
ここやここなどを参考にしています。
dtypeの指定の仕方が間違っているのかと思うのですが、これ以上どのようにすれば良いのかが分かりません。
ご教示いただけますと幸いです。

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/12 13:27