【问题标题】:JSON parsing error, invalid characterJSON解析错误,无效字符
【发布时间】:2015-10-18 17:11:11
【问题描述】:

我正在使用 [R] 中的 jsonlite 包中的 fromJSON 从 Steam API (https://developer.valvesoftware.com/wiki/Steam_Web_API) 调用 GetPlayerSummaries 以访问用户的数据。对于大多数电话来说,它工作正常,但在某些时候我得到一个错误:

    Error in feed_push_parser(readBin(con, raw(), n), reset = TRUE) : 
  lexical error: invalid bytes in UTF8 string.
          publicâ„¢ II: The Sith Lordsâ",               "gameid": "208580"          },
                     (right here) ------^ 

当我在浏览器中访问呼叫时,我在可能出现错误的地方发现了一个 �。我可以 Try-Catch 但我真的很想得到这些数据。如何解决这个问题?

【问题讨论】:

  • 你能在 pastebin 上复制粘贴一些示例数据吗?
  • 我怀疑这是在起作用的部分,在底线之一pastebin.com/DesK5dyr
  • 实际上您的示例 json 仅失败,因为末尾有一个不应该存在的尾随逗号。
  • 您可能是对的,我将问题更改为包含 [R] 给出的完整错误。所以不是未知字符在起作用,而是逗号,如果是这样,我不知道如何用一些代码解决这个问题。我也不确定为什么它会给出错误,其他一些行(例如,'timecreated')也以逗号结尾。

标签: json r parsing


【解决方案1】:

出于我的目的,使用readLines 阅读然后解析它似乎可以工作

readlines <- readLines(link, warn = FALSE)
parse <- fromJSON(readlines)

我不知道它为什么以及如何工作,因此可能不是最干净的解决方案,但它似乎对我的目的很强大。

【讨论】:

    【解决方案2】:

    你必须使用使用jsonlite的流功能

     json_file <- stream_in(file("abc.json"))
    

    这里的 Stack Overflow 已经回答了:

    Error parsing JSON file with the jsonlite package

    这里:

    Export JSON from Spark and input into R

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-17
      • 2010-11-21
      • 2016-09-10
      • 2017-03-16
      相关资源
      最近更新 更多