Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Membaca Fail CSV UTF8 dengan Aksara Beraksen dalam Python?
Membaca fail CSV yang mengandungi aksara beraksen boleh mencabar dalam Python kerana sokongan ASCIInya yang terhad. Artikel ini meneroka penyelesaian kepada masalah ini, menangani "UnicodeDecodeError" yang dihadapi semasa cuba membaca fail sedemikian.
Untuk mengendalikan aksara beraksen, kami memerlukan pembaca CSV yang menyokong pengekodan Unicode. Kod berikut mengubah suai pembaca CSV standard:
<code class="python">def unicode_csv_reader(unicode_csv_data, dialect=csv.excel, **kwargs): # Decode UTF-8 data into Unicode strings csv_reader = csv.reader(unicode_csv_data, dialect=dialect, **kwargs) for row in csv_reader: yield [unicode(cell, 'utf-8') for cell in row]</code>
Penyelesaian asal salah menggunakan pengekodan pada rentetan bait dan bukannya rentetan Unikod. Kod di bawah membetulkan kesilapan ini:
<code class="python">import csv def unicode_csv_reader(utf8_data, dialect=csv.excel, **kwargs): csv_reader = csv.reader(utf8_data, dialect=dialect, **kwargs) for row in csv_reader: yield [unicode(cell, 'utf-8') for cell in row]</code>
Kini kami boleh membaca fail CSV yang dikodkan UTF8 dengan yakin seperti berikut:
<code class="python">filename = 'output.csv' reader = unicode_csv_reader(open(filename)) # Iterate through the rows, fields for field1, field2, field3 in reader: print field1, field2, field3 </code>
Ingat bahawa penyelesaian yang disediakan menganggap data input sudah berada dalam pengekodan UTF8. Jika ini tidak berlaku, anda boleh menggunakan kaedah penyahkod untuk menukarnya kepada UTF8 sebelum menghantarnya kepada pembaca CSV.
Atas ialah kandungan terperinci Bagaimana untuk Membaca Fail CSV UTF8 dengan Aksara Beraksen dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!