【发布时间】:2013-03-25 07:56:38
【问题描述】:
假设我阅读了一个 html 网站并获得了一个名称列表,例如:“Amiel, Henri-Frédéric”。
为了获取名称列表,我使用以下代码对 html 进行解码:
f = urllib.urlopen("http://xxx.htm")
html = f.read()
html=html.decode('utf8')
t.feed(html)
t.close()
lista=t.data
此时,变量 lista 包含一个名称列表,如:
[u'Abatantuono,迭戈', ... , u'Amiel, Henri-Frédéric']
现在我想:
- 将这些名称放入 DataFrame 中;
- 将 DataFrame 保存在 csv 文件中;
- 通过 DataFrame 在 Python 中读取 csv
为简单起见,我们只考虑上面的名称来完成步骤 1 到 3。我将使用以下代码:
name=u'Amiel, Henri-Fr\xe9d\xe9ric'
name=name.encode('utf8')
array=[name]
df=pd.DataFrame({'Names':array})
df.to_csv('names')
uni=pd.read_csv('names')
uni #trying to read the csv file in a DataFrame
此时我收到以下错误:
UnicodeDecodeError: 'utf8' codec can't decode byte 0xe9 in position 67: invalid continuation byte
如果我将上述代码的最后一行替换为:
print uni
我可以读取 DataFrame,但我认为这不是处理此问题的正确方法。
我标记了其他用户发布的许多关于此论点的问题,但我没有解决这个问题。
【问题讨论】: