gpt4 book ai didi

json - 解析R中的嵌套结构

转载 作者:行者123 更新时间:2023-12-02 02:58:31 24 4
gpt4 key购买 nike

我有一个类似 json 的字符串,表示嵌套结构。它不是真正的 json,因为名称和值没有被引用。我想将它解析为嵌套结构,例如列表列表。

#example:
x_string = "{a=1, b=2, c=[1,2,3], d={e=something}}"

结果应该是这样的:

x_list = list(a=1,b=2,c=c(1,2,3),d=list(e="something"))

有没有我不知道的方便的函数可以进行这种解析?

谢谢。

最佳答案

如果您的所有数据都是一致的,那么有一个涉及 regex 和 jsonlite 包的简单解决方案。代码是:

if(!require(jsonlite, quiet=TRUE)){ 
#if library is not installed: installs it and loads it into the R session for use.

install.packages("jsonlite",repos="https://ftp.heanet.ie/mirrors/cran.r-project.org")
library(jsonlite)
}

x_string = "{a=1, b=2, c=[1,2,3], d={e=something}}"

json_x_string = "{\"a\":1, \"b\":2, \"c\":[1,2,3], \"d\":{\"e\":\"something\"}}"
fromJSON(json_x_string)

s <- gsub( "([A-Za-z]+)", "\"\\1\"", gsub( "([A-Za-z]*)=", "\\1:", x_string ) )

fromJSON( s )

第一部分检查包是否已安装。如果是它加载它,否则它安装它然后加载它。我通常将其包含在我编写的任何 R 代码中,以简化个人/人员之间的传输。

您的字符串是 x_string,我们希望它看起来像 json_x_string,它在我们调用 fromJSON() 时提供所需的输出。

正则表达式分为两部分,因为已经有一段时间了——我很确定这可以做得更优雅。再一次,这取决于你的数据是否一致,所以我现在就这样离开。首先它将“=”更改为“:”,然后在所有字母组周围添加引号。调用 fromJSON(s) 给出输出:

fromJSON(s)

$a

[1] 1

$b

[1] 2

$c

[1] 1 2 3

$d

$d$e

[1] "something"

关于json - 解析R中的嵌套结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47925585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com