楼主: fcfc2013
9434 5

[问答] R批量导入JSON,提示 lexical error: invalid [推广有奖]

  • 3关注
  • 1粉丝

已卖:1169份资源

博士生

76%

还不是VIP/贵宾

-

威望
0
论坛币
7223 个
通用积分
6.2147
学术水平
12 点
热心指数
26 点
信用等级
9 点
经验
14348 点
帖子
307
精华
0
在线时间
285 小时
注册时间
2013-2-13
最后登录
2020-2-7

楼主
fcfc2013 发表于 2018-3-7 19:52:26 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
  1. library(jsonlite)
  2. #批量导入当前文件夹下的所有文件
  3. filelist <- list.files(pattern = ".*.json") # 列出当前文件夹下所有的json数据文件名(每个文件名以.json结尾)
  4. length(filelist) # 文件个数
  5. time1 <- Sys.time() # 当前系统时间
  6. datalist <- lapply(filelist, function(x) fromJSON(x)) # 利用fromJSON函数按照文件名列表读取文件
  7. time2<-Sys.time()-time1;time2#计算读取文件花费的时间
复制代码
Error in parse_con(txt, bigint_as_char) :
  lexical error: invalid char in json text.
                                      {Rows:[{"SimNum":"64959409512","
                     (right here) -----

TIM截图20180307194949.png

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:invalid Error Valid 批量导入 json json rjson

沙发
菊花冰糖水 发表于 2018-3-7 20:02:48
参考: https://github.com/jeroen/jsonlite/issues/106
Your json data is prefixed with a byte order mark (BOM) which is not allowed according to the spec
BOM的问题
已有 1 人评分论坛币 热心指数 收起 理由
cheetahfly + 10 + 1 热心帮助其他会员

总评分: 论坛币 + 10  热心指数 + 1   查看全部评分

藤椅
fcfc2013 发表于 2018-3-7 20:51:37
没弄懂 “BOM的问题”
我试了 issues/106中 的方案:
  1. con <- readLines("GetCurrentCarList.json")  
  2. get <- fromJSON(con, flatten = TRUE)
复制代码
还是不行;  
手工删除 “  {Rows: “ 可以正常的读取 , DOM 问题指的是这个吧?

板凳
fcfc2013 发表于 2018-3-11 10:26:40
菊花冰糖水 发表于 2018-3-7 20:02
参考: https://github.com/jeroen/jsonlite/issues/106
Your json data is prefixed with a byte order ma ...
问了 jsonlite 开发者, 他回复 这不是一个BOM问题;

jeroen: This has nothing to do with BOM. You need to quote the rows key. All strings in json must be quoted.

不过还是不明白他说的什么意思

报纸
fcfc2013 发表于 2018-3-11 21:08:11 来自手机
fcfc2013 发表于 2018-3-7 19:52
Error in parse_con(txt, bigint_as_char) :
  lexical error: invalid char in json text.
           ...
后来用RJSONIO包的函数解析成功了。
已有 1 人评分论坛币 学术水平 热心指数 收起 理由
cheetahfly + 10 + 1 + 1 自行解决后不忘分享

总评分: 论坛币 + 10  学术水平 + 1  热心指数 + 1   查看全部评分

地板
jameschin007 发表于 2018-3-14 17:04:30
fcfc2013 发表于 2018-3-11 21:08
后来用RJSONIO包的函数解析成功了。
第一:你的一个问题是这个Json文件结尾需要一个回车符。好像没有。
因此用readLines 读取可以。虽然有warning,但是也没问题。
第二:你这个Json文件 前面开头 是Rows, 如果认为这是一个属性的话,Rows 要加引号括起来。{"Rows":[{"SimNum............

这样导出来的数据是个list, 包含一个叫做Rows的dataframe。


还有一个办法,却掉Rows及[]。直接倒出来就是dataframe

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-2 03:26