非標準の文字が含まれている非常に大きなデータセットを操作しようとしています。ジョブの仕様に従って、Unicodeを使用する必要がありますが、困惑しています。(そして、おそらくそれをすべて間違っている。)
私は次を使用してCSVを開きます:
15 ncesReader = csv.reader(open('geocoded_output.csv', 'rb'), delimiter='\t', quotechar='"')
次に、それを次のようにエンコードしようとします。
name=school_name.encode('utf-8'), street=row[9].encode('utf-8'), city=row[10].encode('utf-8'), state=row[11].encode('utf-8'), zip5=row[12], zip4=row[13],county=row[25].encode('utf-8'), lat=row[22], lng=row[23])
APIに送信する必要があるため、latとlng以外のすべてをエンコードしています。プログラムを実行してデータセットを解析して使用可能なものにすると、次のトレースバックが得られます。
Traceback (most recent call last):
File "push_into_db.py", line 80, in <module>
main()
File "push_into_db.py", line 74, in main
district_map = buildDistrictSchoolMap()
File "push_into_db.py", line 32, in buildDistrictSchoolMap
county=row[25].encode('utf-8'), lat=row[22], lng=row[23])
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd1 in position 2: ordinal not in range(128)
私はpython 2.7.2を使用していることをお伝えしたいと思います。これはdjango 1.4でビルドされたアプリの一部です。私はこのトピックに関するいくつかの投稿を読みましたが、それらのどれも直接当てはまらないようです。どんな助けでも大歓迎です。
また、問題の原因となっている非標準文字の一部がÑであり、場合によってはÉであることも知りたい場合があります。