当前位置: 首页 > 面试题库 >

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

壤驷睿
2023-03-14
问题内容

当我卷曲到API调用链接时http://example.com/passkey=wedsmdjsjmdd

curl 'http://example.com/passkey=wedsmdjsjmdd'

我以csv文件格式获取员工输出数据,例如:

"Steve","421","0","421","2","","","","","","","","","421","0","421","2"

如何使用python解析。

我试过了:

import csv 
cr = csv.reader(open('http://example.com/passkey=wedsmdjsjmdd',"rb"))
for row in cr:
    print row

但它不起作用,我出现了一个错误

http://example.com/passkey=wedsmdjsjmdd No such file or directory:

谢谢!


问题答案:

您需要替换open为urllib.urlopen或urllib2.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(仅法语和/或西班牙语字符)读取带有重音字符的CSV文件。基于csvreader的Python 2.5文档(http://docs.python.org/library/csv.html),由于csvreader仅支持ASCII,因此我想出了以下代码来读取CSV文件。 以下是我尝试阅读的CSV文件的摘录: 即使我尝试将编码/解码为UTF-8,我仍然收到以下异常

  • 本文向大家介绍如何使用JavaScript从* .CSV文件读取数据?,包括了如何使用JavaScript从* .CSV文件读取数据?的使用技巧和注意事项,需要的朋友参考一下 要使用JavaScript读取.CSV,请使用开源CSV解析器Papa Parser。以下是功能- 开源的 使用多线程CSV解析器解析数百万个数据 支持多种网络浏览器 使用解析器,您可以轻松地跳过注释字符 假设您的CSV文件

  • 问题内容: 我正在尝试在pandas中读取较大的csv文件(大约6 GB),并且遇到以下内存错误: 任何帮助吗? 问题答案: 该错误表明机器没有足够的内存来一次将整个CSV读入。假设你一次也不需要整个数据集都在内存中,那么避免该问题的一种方法是分批处理CSV(通过指定chunksize参数): 该参数指定每个块的行数。(当然,最后一块可能少于行。)

  • 问题内容: 我有一个包含内容的文件 如何使用Python 阅读? 同样,如果我有 如何data使用Python 写入CSV文件? 问题答案: 以下是一些最小的完整示例,这些示例如何读取CSV文件以及如何使用Python编写CSV文件。 Python 2 + 3:读取CSV文件 Python 之后,的内容data_read是 Unicode和Python 2.X 如果要编写Unicode,则必须安装

  • 问题内容: 我正在尝试解析一个csv文件,并仅从特定列中提取数据。 范例csv: 我想只捕获特定的列,说,,和。 我看过的代码使我相信我可以通过其对应的编号来调用特定的列,即:将对应于2并遍历每一行使用会产生列2中的所有项目。只有它不能。 到目前为止,这是我所做的: 并且我希望这只会打印出我想要的每一行的特定列,除非不是,我只会得到最后一列。 问题答案: 你会得到从这个代码的最后一列的唯一方法是,

  • 我使用Dask读取2.5GB csv文件,Python给了我错误。这是我写的代码: 以下是我从Python得到的错误: dask_df=df1.read_csv('3SPACK_N150_7Ah_压力分布研究_Data_Matrix.csv')) 文件“C:\ProgramData\Anaconda3\lib\site packages\dask\dataframe\io\csv.py”,第645