使用 python 从 API 打开 csv 文件

Posted

技术标签:

【中文标题】使用 python 从 API 打开 csv 文件【英文标题】:Opening a csv file from an API with python 【发布时间】:2017-10-05 14:04:28 【问题描述】:

所以我正在尝试从 API 下载 csv 格式的文件

我生成一个包含用户输入的链接并将其存储在变量 exportLink 中

import requests
#getProjectName
projectName = raw_input('ProjectName')
#getApiToken
apiToken = "mytokenishere"
#getStartDate
startDate = raw_input('Start Date')
#getStopDate
stopDate = raw_input('Stop Date')

url = "https://api.awrcloud.com/get.php?action=export_ranking&project=%s&token=%s&startDate=%s&stopDate=%s" % (projectName,apiToken,startDate,stopDate)
exportLink = requests.get(url).content

exportLink 将存储生成的链接

然后我必须调用它来使用另一个下载 csv 文件 exportLink 上的 requests.get() 命令

当我点击链接时,它会在浏览器中打开下载,

有没有什么办法可以自动完成,所以它会打开 zip,我可以开始 使用python编辑csv,即删除一些东西?

【问题讨论】:

您能否提供此类链接的示例? 示例响应:ok api.awrcloud.com/… 【参考方案1】:

如果您有 requests.get(url).content 所获得的字节对象 zipdata,您可以逐个文件提取到另一个字节对象

import zipfile
import io
import csv

with zipfile.ZipFile(io.BytesIO(zipdata)) as z:
    for f in z.filelist:
        csvdata = z.read(f)

然后用csvdata做点什么

reader = csv.reader(io.StringIO(csvdata.decode()))
...

【讨论】:

以上是关于使用 python 从 API 打开 csv 文件的主要内容,如果未能解决你的问题,请参考以下文章

python3 简单实现从csv文件中读取内容,并对内容进行分类统计

将 .csv 文件从 URL 读取到 Python 3.x - _csv.Error:迭代器应返回字符串,而不是字节(您是不是以文本模式打开文件?)

gh读取csv文件

为Sendgrid的Email API编码CSV文件

python生成csv文件一定要用vscode打开吗

python中怎么读取csv文件