首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jsonlite解析JSON "None“的问题

使用jsonlite解析JSON "None“的问题
EN

Stack Overflow用户
提问于 2021-12-03 09:37:44
回答 1查看 37关注 0票数 0

我试图从英国疫苗接种数据仪表板中读取一些数据,这些数据将一些数据编码为csv文件中的JSON。(下载链接是这里)从疫苗接种摄取,由接种日期,年龄,人口统计学上的网页(https://coronavirus.data.gov.uk/details/vaccinations?areaType=nation&areaName=England)。提出的问题是,我的代码不再成功地将JSON数据扩展为data.frame。当数据遇到None对象时,这似乎是一个解析问题。

我的代码读取数据如下(此代码在2021-11-25下载的数据上成功,但对2021-12-02数据失败)。下面的代码在fromJSON命令上失败,该命令现在到达“Arg”时出错:没有人声称存在词法错误。错误消息显示在代码下面。

代码语言:javascript
复制
library(tidyverse)
library(jsonlite)

#! Read in the latest national dashboard data
df <- read_csv("<filepath>")

df |> 
  mutate(vaccinationsAgeDemographics = map(vaccinationsAgeDemographics, ~fromJSON(. |> str_replace_all("'", "\"")))) |> 
  unnest(cols = c(vaccinationsAgeDemographics))
代码语言:javascript
复制
Error: Problem with `mutate()` column `vaccinationsAgeDemographics`.
i `vaccinationsAgeDemographics = map(...)`.
x lexical error: invalid char in json text.
          yVaccinationDatePercentage": None}, {"age": "16_17", "Vaccin
                     (right here) ------^

一条简化的测试线如下:

代码语言:javascript
复制
fromJSON(df$vaccinationsAgeDemographics[1] |> str_replace_all("'", "\""))

这将引发类似的错误:

代码语言:javascript
复制
Error: lexical error: invalid char in json text.
          yVaccinationDatePercentage": None}, {"age": "16_17", "Vaccin
                     (right here) ------^
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-03 23:31:05

我设法解决了这个问题,因为jsonlite中讨论了可能的json映射:https://cran.r-project.org/web/packages/jsonlite/vignettes/json-mapping.pdf

如果预先知道数据打算是数字类型,并且没有任何一个不包含在任何指示符名中,我们可以使用以下代码将None字符串替换为"NA"

代码语言:javascript
复制
library(tidyverse)
library(jsonlite)

df <- read_csv("C:\\Users\\joel.kandiah\\Downloads\\data_2021-Dec-02.csv")

fromJSON(df$vaccinationsAgeDemographics[1] |> str_replace_all("'", "\"") |> str_replace_all("None", "\"NA\""))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70212171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档