r - 将 API 响应从 JSON 转换为 R Data DataFrame
问题描述
我已经构建了一个返回 JSON 响应的 Flask API,我正在寻找一种可以将这个 HTML JSON 读入 R 数据帧的优雅方式?以下是 API 中的代码:
@app.route('/get_model_results/<upload_id>', methods=['GET'])
def get_model_results(upload_id):
upload_id = str(upload_id)
path_for_model_results = '/app/flask_app/model_results_' + upload_id + '.csv'
return pd.read_csv(path_for_model_results).to_json(orient='records')
在我的 R 闪亮代码中,我使用 httr 并检索 JSON,但它以 HTML 形式返回。这是我闪亮的代码:
library(httr)
get_model_results <- function(upload_id) {
upload_url <- paste0(BACKEND_URL, "/get_model_results/", upload_id)
request <- httr::GET(upload_url, encoding = 'UTF-8')
out <- httr::content(request)
out
}
这是响应的片段:
model_df<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body><p>[{"central_time":"2020-04-07 15:47:00","Va_V":283.312}]</p></body></html>
解决方案
如果您的响应都是这种格式,那么最简单的方法就是去掉 json 并解析它:
jsonlite::fromJSON(strsplit(strsplit(out, "<p>")[[1]][2], "</p>")[[1]][1])
#> central_time Va_V
#> 1 2020-04-07 15:47:00 283.312
推荐阅读
- html - 如何在 jquery-ui.css 中设置默认日期选择器箭头?
- javascript - 单击按钮显示不同的组件(反应组件类)
- javascript - VS Code 在使用 Live Server 时显示目录结构而不是 app.js 文件
- ruby - 在冰糕中,你能指定一个类型是一个类的后代吗?
- python - 如何将日志文件转换为 pandas DF
- linux - 内核模块重新加载后中断处理程序停止工作(Xilinx FPGA / PCIe)
- java - 哪个 java 类在 catalina.out 上发出警告
- java - 在反向代理后面访问 ElasticDB
- java - 避免对未获取的惰性对象进行 GSON 序列化
- python - 使用深度 CNN 和完全连接的分类器转换分割掩码 numpy 数组以进行图像分割