İçinde bazı standart olmayan karakterler bulunan çok büyük bir veri kümesiyle çalışmaya çalışıyorum. İş özelliklerine göre unicode kullanmam gerekiyor, ancak şaşkınım. (Ve muhtemelen her şeyi yanlış yapmak.)
CSV'yi şunu kullanarak açıyorum:
15 ncesReader = csv.reader(open('geocoded_output.csv', 'rb'), delimiter='\t', quotechar='"')
Sonra onu şu şekilde kodlamaya çalışıyorum:
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])
Enlem ve lng hariç her şeyi kodluyorum çünkü bunların bir API'ye gönderilmesi gerekiyor. Veri kümesini kullanabileceğim şeylere ayrıştırmak için programı çalıştırdığımda, aşağıdaki Traceback'i alıyorum.
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)
Sanırım size python 2.7.2 kullandığımı söylemeliyim ve bu, django 1.4'te yapılan bir uygulamanın bir parçası. Bu konuyla ilgili birkaç yazı okudum, ancak hiçbiri doğrudan geçerli görünmüyor. Herhangi bir yardım çok takdir edilecektir.
Soruna neden olan bazı standart olmayan karakterlerin Ñ ve muhtemelen É olduğunu da bilmek isteyebilirsiniz.