成功将分页 JSON 对象强制转换为 R 数据帧

2024-01-01

我正在尝试将从 API 中提取的 JSON 转换为 R 中的数据帧,以便我可以使用和分析数据。

#Install needed packages
require(RJSONIO)
require(httr)

#request a list of companies currently fundraising using httr
r <- GET("https://api.angel.co/1/startups?filter=raising")
#convert to text object using httr
raise <- content(r, as="text")
#convert to list using RJSONIO
fromJSON(raise) -> new

一旦我得到这个物体,new,我很难将列表解析为数据帧。 json 有这个结构 https://angel.co/api/spec/startups:

{
  "startups": [
 {
  "id": 6702,
  "name": "AngelList",
  "quality": 10,
  "...": "...",
  "fundraising": {
    "round_opened_at": "2013-07-30",
    "raising_amount": 1000000,
    "pre_money_valuation": 2000000,
    "discount": null,
    "equity_basis": "equity",
    "updated_at": "2013-07-30T08:14:40Z",
    "raised_amount": 0.0
      }
    }
  ],
  "total": 4268 ,
  "per_page": 50,
  "page": 1,
  "last_page": 86
}

我尝试过查看其中的各个元素new使用如下代码:

 new$startups[[1]]$fundraising$raised_amount

来拉动raised_amount对于列出的第一个元素。然而,我不知道如何将其应用到 4268 家初创公司的整个列表中。特别是,我不知道如何处理分页。我似乎最多只能看到一页的初创公司(即 50 家)。

我尝试使用 for 循环来获取初创公司列表,然后将每个值逐一放入数据帧的一行中。下面的示例仅针对一列显示了这一点,但当然我可以通过扩展 for 循环来对所有列执行此操作。但是,我无法在任何其他页面上获取任何内容。

df1 <- as.data.frame(1:length(new$startups))
df1$raiseamnt <- 0

for (i in 1:length(new$startups)) {
  df1$raiseamnt[i] <- new$startups[[i]]$fundraising$raised_amount
}

e:谢谢您提到分页。我会更仔细地查看文档,看看是否能弄清楚如何正确构建 API 调用来获取不同的页面。如果/当我弄清楚这一点时,我会更新这个答案!


您可能会发现 jsonlite 包很有用。下面是一个简单的例子。

library(jsonlite)
library(httr)
#request a list of companies currently fundraising using httr
r <- GET("https://api.angel.co/1/startups?filter=raising")
#convert to text object using httr
raise <- content(r, as="text")
#parse JSON
new <- fromJSON(raise)

head(new$startups$id)
[1] 229734 296470 237516 305916 184460 147385

但请注意,这个包或问题中的包可以帮助解析 JSON 字符串,应适当创建单独的结构,以便可以毫无问题地添加字符串的每个元素,这取决于开发人员。

对于分页,API 似乎是 REST API,因此过滤条件通常添加在 URL 中(例如https://api.angel.co/1/startups?filter=raising&variable=value)。我想它可以在 API 文档中的某个地方找到。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

成功将分页 JSON 对象强制转换为 R 数据帧 的相关文章

随机推荐

  • Mathematica 绘图中多个函数的检测和样式设置

    This https stackoverflow com questions 5597566 这个问题让我开始思考 Mathematica 如何检测正在绘制的多个函数 我发现我实在是看不懂这个流程 考虑 Plot 1 Sequence 2
  • 如何为二维数组的 qsort 编写比较器函数?

    我有一个 n 2 大小的数组 我想根据第二列的值使用 qsort 对它们进行排序 include
  • IEquatable,如何正确实施[重复]

    这个问题在这里已经有答案了 我正在使用 net 2 0 和 c 并且我已经在我的类中实现了 IEquatible 接口 如下所示 public MyClass IEquatable
  • 如何计算 char 数组中的元素数量?

    我试图计算数组中的元素数量 并被告知该行 int r sizeof array sizeof array 0 会给我数组中元素的数量 我发现该方法确实有效 至少对于 int 数组而言 然而 当我尝试这段代码时 事情就崩溃了 include
  • 为 Galaxy S8 创建模拟器? - 安卓工作室

    我创建了一个新的硬件配置文件 试图为 Galaxy S8 S8 制作模拟器 我将屏幕尺寸设置为 5 8 6 2 英寸 取决于 S8 还是 S8 尽管事实上这似乎不会影响模拟器 屏幕分辨率设置为 1440 x 2960 就像设备一样 模拟器看
  • 如何将文件分成相等的部分而不破坏单独的行? [复制]

    这个问题在这里已经有答案了 我想知道是否可以将文件分成相等的部分 edit 除了最后一个之外都相等 而不破坏线 在 Unix 中使用 split 命令 行可能会分成两半 有没有一种方法可以将一个文件分成 5 个相等的部分 但仍然只包含整行
  • DirectoryInfo.EnumerateFiles(...) 导致 UnauthorizedAccessException (和其他异常)

    我最近需要枚举整个文件系统 寻找特定类型的文件以进行审计 由于对要扫描的文件系统的权限有限 这导致我遇到了一些异常 其中 最为普遍的是未经授权的访问异常 http msdn microsoft com en us library syste
  • 在 Visual Studio Code 中添加模块的 Python 路径

    我很难指定包含另一个目录甚至同一项目的文件夹中的模块 包的 python 路径 当我尝试导入时出现错误 ModuleNotFoundError 没有名为 感知 的模块 在 Spyder 中 这只需使用 UI 选择 python 将查找的附加
  • 这是一个通用函数指针吗?它危险吗?

    在学习和搞乱函数指针时 我注意到一种初始化 void 函数指针并强制转换它们的方法 然而 虽然我没有收到任何警告或错误 无论是使用 GCC 还是 VS 的编译器 我想知道这样做是否危险或不好的做法 因为我经常在网上看到这种初始化函数指针的方
  • 生成颜色渐变

    我有一个想法以编程方式生成匹配的配色方案 但是我需要能够在给定一组两种颜色 十六进制或 RGB 值 的情况下生成线性渐变 任何人都可以向我提供 伪 代码或为我指明完成此任务的正确方向吗 EDIT 我忘了提及 但我还需要指定 或知道 从颜色
  • 推荐一个 HTML5/Javascript 的开发环境吗? [复制]

    这个问题在这里已经有答案了 可能的重复 用于 JavaScript 开发的 IDE https stackoverflow com questions 788978 ide for javascript development 我想自学 H
  • 如何创建类的实例并从 Bag 对象(如会话)设置属性

    该类将在runtime and values存储在一个Bag类似物体session or ViewBag 现在我想创建一个instance类并设置其属性使用袋子数据 我知道我应该使用reflection 但不知道有没有什么方法开箱即用做这样
  • JQueryUI 滑块在 IE 上不起作用

    我一直在尝试让滑块在控件旁边显示其当前值 本教程http www ryancoughlin com demos interactive slider http www ryancoughlin com demos interactive s
  • 将委托方法放入类别中

    到目前为止我开发了一些应用程序 现在我正在编写一个新的项目 在这个项目中我希望保持代码非常干净 因此很容易找到方法 我想从UI视图控制器 whose view have a UI表格视图作为子视图 我希望有一个名为DetailViewCon
  • 在按钮单击事件中旋转文本

    我需要在单击按钮时以不同角度旋转文本 我需要两个按钮 一个用于顺时针移动文本 另一个用于逆时针移动文本 尝试这个 html
  • Eclipse Subversive 提交变更列表?

    我刚刚创建了一个忽略提交更改列表 如中所述SVN 有没有办法将文件标记为 不提交 https stackoverflow com questions 635446 svn is there a way to mark a file as d
  • ReferenceError: $ 未定义 yii2

    在我的视图中添加 JavaScript 会导致ReferenceError is not defined 我认为问题是由于 Yii2 最后在我的页面上注入脚本造成的 如何解决这个问题 或者如何阻止 Yii2 自动加载脚本文件 My view
  • 从 .NET 调用 Java/AXIS Web 服务:“返回 null”问题

    我一直在通过谷歌 stackoverflow 等寻找这个问题 我找到了很多相关的答案 但没有真正的解决方案 我正在从 NET 客户端使用 Axis 服务 但返回始终为 null 无论我发送什么参数 始终为 null 所以我开始寻找 并尝试从
  • 在单元测试中比较字典时如何忽略某些值?

    我想断言两个字典是相等的 使用Python的unittest https docs python org 3 library unittest html 但忽略字典中某些键的值 采用方便的语法 如下所示 from unittest impo
  • 成功将分页 JSON 对象强制转换为 R 数据帧

    我正在尝试将从 API 中提取的 JSON 转换为 R 中的数据帧 以便我可以使用和分析数据 Install needed packages require RJSONIO require httr request a list of co