Python错误:迭代器应该返回字符串,而不是字节(你是否在文本模式下打开文件?)

时间:2017-07-02 15:38:55

标签: python

我是python的新手并尝试编写一个函数来从url加载csv数据。我已经寻找各种舒适的选项,比如使用pandas,但我正在尝试使用标准的python apis。

这是我使用各种在线资料编写的内容,但它给出了我在问题主题中提到的错误

import csv
import requests
url="https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data"
response=requests.get(url)
text=response.iter_lines()
reader=csv.reader(text,delimiter=',')
for row in reader:
    print(row)

如何将行从字节更改为字符串? str函数也不起作用。

这不是一个重复的问题。如果您查看代码,它不会使用urllib和/或contextlib或完全关闭。它只使用csv并请求模块。 SInce csv.reader返回一个iterable,你可以在同一个上启动一个for循环,是否可以在创建迭代器之后将行从字节更改为字符串

import csv
import requests
url="https://archive.ics.uci.edu/ml/machine-learning-databases/pima-indians-diabetes/pima-indians-diabetes.data"
response=requests.get(url)
text=response.iter_lines(decode_unicode='utf-8')
reader=csv.reader(text,delimiter=',')
for row in reader:
    print(row)

这就是我要找的,解决方案是不导入编解码器。

0 个答案:

没有答案