Tôi đang cố gắng làm việc với tập dữ liệu rất lớn có một số ký tự không chuẩn trong đó. Tôi cần phải sử dụng unicode, theo thông số công việc, nhưng tôi bị bối rối. (Và hoàn toàn có thể làm việc đó hoàn toàn sai.)UnicodeDecodeError: 'ascii' codec không thể giải mã byte 0xd1 ở vị trí 2: thứ tự không nằm trong phạm vi (128)
tôi mở CSV sử dụng:
15 ncesReader = csv.reader(open('geocoded_output.csv', 'rb'), delimiter='\t', quotechar='"')
Sau đó, tôi cố gắng để mã hóa nó với:
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])
tôi mã hóa tất cả mọi thứ ngoại trừ lat và lng bởi vì chúng cần được gửi tới API. Khi tôi chạy chương trình để phân tích cú pháp tập dữ liệu thành những gì tôi có thể sử dụng, tôi nhận được Traceback sau đây.
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)
Tôi nghĩ tôi nên nói với bạn rằng tôi đang sử dụng python 2.7.2 và đây là một phần của ứng dụng được xây dựng trên django 1.4. Tôi đã đọc một số bài viết về chủ đề này, nhưng không ai trong số họ dường như trực tiếp áp dụng. Chúng tôi rất trân trọng bất kỳ sự giúp đỡ nào.
Bạn cũng có thể muốn biết rằng một số ký tự không chuẩn gây ra vấn đề là Ñ và có thể là É.
mã hóa tập tin ban đầu của bạn là gì? Tôi nghĩ rằng bạn nên giải mã nó theo mã hóa ban đầu và sau đó chuyển đổi thành utf 8 –
có thể trùng lặp của [Encoding cho "'ascii' codec không thể mã hóa ký tự ... thứ tự không trong phạm vi (128)"] (http: // stackoverflow .com/questions/2513027/encoding-cho-ascii-codec-không-mã hóa-ký tự-thứ tự-không-trong-phạm vi128) [Ed .: và khoảng một tỷ người khác, quá, tôi chắc chắn.] –