您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何使用Python从URL读取CSV文件?

如何使用Python从URL读取CSV文件?

您需要替换openurllib.urlopenurllib2.urlopen

例如

import csv
import urllib2

url = 'http://winterolympicsmedals.com/medals.csv'
response = urllib2.urlopen(url)
cr = csv.reader(response)

for row in cr:
    print row

这将输出以下内容

Year,City,Sport,Discipline,NOC,Event,Event gender,Medal
1924,Chamonix,Skating,figure skating,AUT,individual,M,Silver
1924,Chamonix,Skating,figure skating,AUT,individual,W,Gold
...

最初的问题被标记为“ python-2.x”,但是对于python3实现(仅需要少量更改),请参见下文。

该问题已加标签python-2.x因此篡改原始问题或已接受的答案似乎不合适。但是,现在不支持Python 2,并且此问题对于“ python csv urllib”仍然具有良好的google功能,因此这里是更新的Python 3解决方案。

现在必须将urlopen的响应(以字节为单位)解码为有效的本地编码,因此必须对接受的答案进行一些修改

import csv, urllib.request

url = 'http://winterolympicsmedals.com/medals.csv'
response = urllib.request.urlopen(url)
lines = [l.decode('utf-8') for l in response.readlines()]
cr = csv.reader(lines)

for row in cr:
    print(row)

请注意,以开头的额外行lines =是事实,该事实urlopen现在在urllib.request模块中,print当然需要括号。

它几乎不做广告,但是csv.reader 可以从字符串列表中读取。

而且由于其他人提到了熊猫,所以这里有一种方法可以在控制台友好的输出显示CSV:

python3 -c 'import pandas
df = pandas.read_csv("http://winterolympicsmedals.com/medals.csv")
print(df.to_string())'

(是的,这是三行,但是您可以将其复制粘贴为一个命令。

python 2022/1/1 18:30:17 有195人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶