You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用R从需要身份验证的API下载CSV并转换为dataframe

解决方案

你可以通过以下三种常用方法直接将响应中的CSV内容转为R的dataframe,无需存储到本地:

前置依赖

确保已经安装httr包,若使用第三种tidyverse方案需要额外安装readr包:

# 未安装可先执行安装
# install.packages("httr")
# install.packages("readr")

完整代码

library(httr)

# 发起API请求,替换为你实际的账号、密码
api_resp <- GET(
  "https://api.performancehorizon.com/reporting/export/export/click.csv?start_date=2021-11-23+00%3A00%3A00&end_date=2021-11-24+00%3A00%3A00&campaign_id=1011l3888&convert_currency=USD&ref_conversion_metric_id%5B%5D=2",
  authenticate("你的用户名", "你的密码")
)

# 方法1:使用httr内置的content()直接解析,自动处理编码
df <- content(api_resp, type = "text/csv", encoding = "UTF-8")

# 方法2:用R基础包实现,兼容性最好
csv_content <- rawToChar(api_resp$content)
df <- read.csv(text = csv_content, encoding = "UTF-8")

# 方法3:tidyverse生态方案,读取大文件速度更快
library(readr)
df <- read_csv(rawToChar(api_resp$content))

说明

  • 请求返回的状态码为200说明接口调用成功,响应中的$content字段存储的是CSV文件的二进制原始数据
  • rawToChar()可将二进制内容转换为纯文本的CSV字符串,直接传给CSV读取函数即可生成dataframe,全程无本地文件写入
  • 若读取时出现分隔符、表头不匹配的问题,可给read.csv/read_csv增加对应参数调整,比如指定sep = ","、设置跳过行数skip = N等

内容的提问来源于stack exchange,提问作者Juan Lozano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:54:05