r - 有没有办法从输入到 R 中的 toJSON 函数的数据框的输出中删除引号?
问题描述
我正在尝试将 R 中的数据框作为 json 文件输出,以用于我在 R 之外制作的高图。这就是我的输出的样子:-
[{"name":"alpha","value":1},{"name":"brave","value":2},{"name":"charlie","value":3}]
但是,我希望我的输出看起来像这样:-
[{name:"alpha",value:1},{name:"brave",value:2} {name:"charlie",value:3}]
我应该怎么做才能不将我的数据框的名称(在本例中为名称和值)放在引号中?如果将我的数据转换为 json 文件不是最好的方法,我还能/应该做什么?
library(tidyverse)
library(jsonlite)
data = tibble(name = c("alpha", "bravo", "charlie"),
value = c(1, 2, 3))
output = toJSON(data, dataframe="rows")
write(output, "output.txt")
解决方案
一种可能的使用方法regex
,从出现在冒号之前的值中删除引号:
json_string <- jsonlite::toJSON(data, dataframe="rows")
temp <- stringr::str_replace_all(json_string, '"(\\w+)"\\s*:', '\\1:')
cat(temp)
#[{name:"alpha",value:1},{name:"bravo",value:2},{name:"charlie",value:3}]
write(temp, "output.txt")
推荐阅读
- node.js - 如果 json 正文没有错误,Express Json Validator Middleware 总是 404
- laravel-5 - 过滤范围不返回正确的结果
- django - 如何获取django ListAPIView中文件的相对路径?
- php - “未定义的属性:stdClass::$order”
- javascript - 自动化测试中有多少断言?
- r - 计数分类变量的模式计算
- python - 如何将代码升级到 Django 2 或在 Django 1.9 中使用类似于“路径”的东西?
- key-pair - 停用 Lightsail 默认密钥对
- java - Apache Netbeans 10 CVS 插件不可用?
- python-tesseract - Pytesseract.TesseractError '用法:python pytesseract.py [-l lang] input_file