gpt4 book ai didi

json - 解析错误:尝试解析数据框中的JSON列时出现“Trailing Garbage”

转载 作者:行者123 更新时间:2023-12-04 02:14:40 26 4
gpt4 key购买 nike

我有一个类似于this的日志文件。

我正在尝试通过以下方式解析Message列中的JSON:

library(readr)
library(jsonlite)

df <- read_csv("log_file_from_above.csv")
fromJSON(as.character(df$Message))


但是,我遇到了以下错误:

Error: parse error: trailing garbage
"isEmailConfirmed": false } { "id": -1, "firstName":
(right here) ------^


如何摆脱“尾随垃圾”?

最佳答案

fromJSON()不是针对字符向量“应用”,而是试图将其全部转换为数据帧。你可以试试

purrr::map(df$Message, jsonlite::fromJSON)


@Abdou提供了什么或

jsonlite::stream_in(textConnection(gsub("\\n", "", df$Message)))


后两个将创建数据帧。第一个将创建一个列表,您可以将其添加为列。

可以将 dplyr::bind_cols与last方法一起使用,以使用所有数据创建一个新的数据框:

dplyr::bind_cols(df[,1:3],
jsonlite::stream_in(textConnection(gsub("\\n", "", df$Message))))


@Abdou还建议使用几乎纯净的基础R解决方案:

cbind(df, do.call(plyr::rbind.fill, lapply(paste0("[",df$Message,"]"), function(x) jsonlite::fromJSON(x))))


完整,有效的工作流程:

library(dplyr)
library(jsonlite)

df <- read.table("http://pastebin.com/raw/MMPMwNZv",
quote='"', sep=",", stringsAsFactors=FALSE, header=TRUE)

bind_cols(df[,1:3], stream_in(textConnection(gsub("\\n", "", df$Message)))) %>%
glimpse()
##
Found 3 records...
Imported 3 records. Simplifying into dataframe...
## Observations: 3
## Variables: 19
## $ Id <int> 35054, 35055, 35059
## $ Date <chr> "2016-06-17 19:29:43 +0000", "2016-06-17 1...
## $ Level <chr> "INFO", "INFO", "INFO"
## $ id <int> -2, -1, -3
## $ ipAddress <chr> "100.100.100.100", NA, "100.200.300.400"
## $ howYouHearAboutUs <chr> NA, "Radio", NA
## $ isInterestedInOffer <lgl> TRUE, FALSE, TRUE
## $ incomeRange <int> 60000, 1, 100000
## $ isEmailConfirmed <lgl> FALSE, NA, TRUE
## $ firstName <chr> NA, "John", NA
## $ lastName <chr> NA, "Smith", NA
## $ email <chr> NA, "john.smith@gmail.com", NA
## $ city <chr> NA, "Smalltown", NA
## $ birthDate <chr> NA, "1999-12-10T05:00:00Z", NA
## $ password <chr> NA, "*********", NA
## $ agreeToTermsOfUse <lgl> NA, TRUE, TRUE
## $ visitUrl <chr> NA, NA, "https://www.website.com/?purpose=X"
## $ isIdentityConfirmed <lgl> NA, NA, FALSE
## $ validationResults <lgl> NA, NA, NA

关于json - 解析错误:尝试解析数据框中的JSON列时出现“Trailing Garbage”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38858345/

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