"jorge", "value"=>"MX"}, {"name"=-6ren">
gpt4 book ai didi

r - 将字符串转换为json字符串并在R中解析

转载 作者:行者123 更新时间:2023-12-02 00:27:08 26 4
gpt4 key购买 nike

我有一个数据,其中一列为 json 字符串:

reservation  reasons
1592 [{"name"=>"jorge", "value"=>"MX"}, {"name"=>"Billing phone number", "value"=>"1123"}, {"name"=>"BillingCountry", "value"=>"USA"}]
1597 [{"name"=>"BillingAddress_Country", "value"=>"IN"}, {"name"=>"Billing phone number country code", "value"=>"IN"}, {"name"=>"Latest amount", "value"=>"583000000"}]

我想按如下方式解析该列:

reservation   name                                value
1592 jorge mx
1592 Billing phone number 1123
1592 BillingCountry USA
1597 BillingAddress_Country IN
1597 Billing phone number country code IN
1597 Latest amount 583000000

我就是我们我在 R 中使用 jsonlite。我的代码中出现以下错误:

data<-read.csv("data.csv")
json<-data$reasons
mydf <- fromJSON(json)
Error: Argument 'txt' must be a JSON string, URL or file.

谁能告诉我我哪里出错了?我需要做哪些修改?非常感谢!

最佳答案

这对我来说看起来不像普通的 JSON(或者对 fromJSON 来说,这让我感觉好一点了)。也许这是它的一些特殊情况或其他什么(?)。 更新:@camille 将其识别为 Ruby Hash。

无论如何,我们都可以修复它:

reasons <-  '{"name"=>"jorge", "value"=>"MX"}, {"name"=>"Billing phone number", "value"=>"1123"}, {"name"=>"BillingCountry", "value"=>"USA"}'

reasons <- gsub("=>", ":", reasons)
reasons <- gsub("[{}]", "", reasons)
reasons <- paste0("{",reasons,"}")

fromJSON(reasons)
$`name`
[1] "jorge"

$value
[1] "MX"

$name
[1] "Billing phone number"

$value
[1] "1123"

$name
[1] "BillingCountry"

$value
[1] "USA"

关于r - 将字符串转换为json字符串并在R中解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51143588/

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