Csv Python,UnicodeEncodeError

Csv Python,UnicodeEncodeError,csv,encoding,python-3.3,Csv,Encoding,Python 3.3,你好,我有这段代码 import urllib.request import string import time import gzip from io import BytesIO from io import StringIO from zipfile import ZipFile import csv import datetime from datetime import date import concurrent.futures den = date.today().replac

你好,我有这段代码

import urllib.request
import string
import time
import gzip
from io import BytesIO
from io import StringIO
from zipfile import ZipFile
import csv
import datetime
from datetime import date
import concurrent.futures

den = date.today().replace(day=1) - datetime.timedelta(days=1)
url = '' + den.strftime("%Y%m%d") + '_OB_ADR_csv.zip'

data = urllib.request.urlopen(url).read()
zipdata = BytesIO()
zipdata.write(data)

csvfile = open('./test.csv', 'w', newline='')
csvwrite = csv.writer(csvfile, delimiter=';')

with ZipFile(zipdata) as zip:
    for i, nazev in enumerate(zip.namelist()):
        if i == 0:
            continue

        csvstring = StringIO(str(zip.read(nazev), encoding='windows-1250'))
        csvreader = csv.reader(csvstring, delimiter=';')

        for j, row in enumerate(csvreader):
            if j == 0 and i != 1:
                continue

            csvwrite.writerow(row)

csvfile.close()
当我运行它时,它有时会在“csvwrite.writerow(行)”处抛出“UnicodeEncodeError:'ascii'编解码器无法对位置1:序号不在范围(128)”中的字符“\xf3”进行编码

我如何解决这个问题?多谢各位

编辑:
我在Python3.3下运行它,您没有告诉csv.writer有关编码的信息。请看一下:

要使用不同的编码对文件进行解码,请使用encoding参数 关于开放的…,同样的道理也适用于用非开放的语言写作 系统默认编码:打开时指定编码参数 输出文件


您可以从UnicodeCodeerror中看到,Python认为您需要用ascii编写文件。只需指定编码参数并选择所需的编码(我的建议是
encoding='utf-8'
)。

我忘了编写我在python 3.2下运行它的代码