Python csv.错误:您是否以文本模式打开文件?
python文件包含以下代码Python csv.错误:您是否以文本模式打开文件?,python,csv,urllib,Python,Csv,Urllib,python文件包含以下代码 import csv import urllib.request url = "https://gist.githubusercontent.com/aparrish/cb1672e98057ea2ab7a1/raw/13166792e0e8436221ef85d2a655f1965c400f75/lebron_james.csv" stats = list(csv.reader(urllib.request.urlopen(url))) 在python中运行上
import csv
import urllib.request
url = "https://gist.githubusercontent.com/aparrish/cb1672e98057ea2ab7a1/raw/13166792e0e8436221ef85d2a655f1965c400f75/lebron_james.csv"
stats = list(csv.reader(urllib.request.urlopen(url)))
在python中运行上述代码时,会出现以下异常:
错误回溯(最近一次呼叫最后一次) 在() 1 url=“” ---->2 stats=list(csv.reader(urllib.request.urlopen(url))) 错误:迭代器应该返回字符串,而不是字节(是否以文本模式打开文件?)
如何解决此问题?我真的不知道这些数据是什么,但如果您有兴趣使用
,
分隔这些数据,您可以尝试以下方法:
stats = list(csv.reader(urllib.request.urlopen(url).read().decode()))
import csv
import requests
url = "https://gist.githubusercontent.com/aparrish/cb1672e98057ea2ab7a1/raw/13166792e0e8436221ef85d2a655f1965c400f75/lebron_james.csv"
text = requests.get(url).text
lines = text.splitlines()
stats = csv.reader(lines)
for row in stats:
print(row)
# ['Rk', 'G', 'Date', 'Age', 'Tm', ...]
# ['1', '1', '2013-10-29', '28-303', 'MIA',... ]
1.它读取响应数据
2.从字节解码为字符串
3.CSV阅读器
4.将CSV对象强制转换为列表
如果您需要不同的数据,请告诉我,以便我可以编辑我的答案。
祝您好运。您应该阅读
urlib.request.urlopen
的响应
stats = list(csv.reader(urllib.request.urlopen(url).read().decode("UTF-8")))
请尝试以下代码
import csv
import io
import urllib.request
csv_response = urllib.request.urlopen(url)
lst = list(csv.reader(io.TextIOWrapper(csv_response)))
urllib
的文档建议使用该模块
你必须注意两件事:
- 您必须对从internet接收的数据(字节)进行解码,才能获得文本。对于
,使用请求
进行解码文本
需要的是行列表,而不是文本块。在这里,我们使用csvreader
拆分行将其拆分
stats = list(csv.reader(urllib.request.urlopen(url).read().decode()))
import csv
import requests
url = "https://gist.githubusercontent.com/aparrish/cb1672e98057ea2ab7a1/raw/13166792e0e8436221ef85d2a655f1965c400f75/lebron_james.csv"
text = requests.get(url).text
lines = text.splitlines()
stats = csv.reader(lines)
for row in stats:
print(row)
# ['Rk', 'G', 'Date', 'Age', 'Tm', ...]
# ['1', '1', '2013-10-29', '28-303', 'MIA',... ]
这是勒布朗·詹姆斯在2013-2014赛季前五场比赛的统计数据。数据的来源:@SzuyuChen那么你想怎么做呢?