【问题标题】:extracting text from a json string in R with double quotes用双引号从R中的json字符串中提取文本
【发布时间】:2017-09-28 15:26:46
【问题描述】:

我正在尝试提取 JSON 对象的正文字符串中的内容。问题是我无法将双引号传递给并提取所有文本信息。在这种情况下,我需要文本为“文档中存在关于库函数链接的拼写错误,这在浏览文档时非常烦人!”。我已经把我的代码放在这里,如果有人可以建议如何传递双引号而不是 (",) 并且可以达到这个贪婪的量词,(这是我一直在使用的表达式),

body<- str_extract(json_file , 'body[^,]*\\s*'). 

谢谢

library(stringr)
json_file<- '{ "_id" : ObjectId( "539163d7bd350003" ), "login" :    "vui", "id" : 369607, "avatar_url" : "https://avatars.mashupsusercontent.com/u/369607?", "gravatar_id" : "df8897ffebe16c5b0cd690925c63e190", "body":"There is a typo error in documentation regarding a link to a librarys function, which is quite irritating while browsing the documentation!","url" : "https://api.mashups.com/users/vui", "html_url" : "https://mashups.com/vui", "followers_url" : "https://api.mashups.com/users/vui/followers", "following_url" : "https://api.mashups.com/users/vui/following{/other_user}", "gists_url" : "https://api.mashups.com/users/vui/gists{/gist_id}", "starred_url" : "https://api.mashups.com/users/vui/starred{/owner}{/repo}", "subscriptions_url" : "https://api.mashups.com/users/vui/subscriptions", "organizations_url" : "https://api.mashups.com/users/vui/orgs", "repos_url" : "https://api.mashups.com/users/vui/repos", "events_url" : "https://api.mashups.com/users/vui/events{/privacy}", "received_events_url" : "https://api.mashups.com/users/vui/received_events", "type" : "User", "site_admin" : false, "org" : "amurath"}'
body<- str_extract(json_file , 'body[^,]*\\s*')

body

【问题讨论】:

  • 给定的字符串不是有效的 JSON 对象。所以你有一个仍然是 JSONish 的字符串。除非您无法定义 JSONish 的含义,否则任何引用模式在您眼中都可能是有效的。
  • 我放了一个经过验证的 JSON 对象,如果您有任何想法,请告诉我!谢谢,问候!

标签: r regex string-matching stringr


【解决方案1】:

这对我有用..

  library(stringr)
  body <- str_extract(json_file, 'body":"[^"]*')

【讨论】:

    【解决方案2】:

    您的输入只有一个格式错误的示例,因此我不太相信这将适用于您的其余数据。但是,在 此数据 上获得所需内容的一种方法是:

    gsub('.*?body.*?:\"(.*?)\",\"\\w+\"\\s*:.*', "\\1", json_file)
    

    [1] "对于像我这样的 spout 用户,/reload 不是一个选项 因为它使 spout 框架崩溃。此外,重新加载需要一段时间。一世 想知道你是否可以执行一个命令来重新加载 \"configurations\"。\r\n就是这样,祝新人快乐 年!\r\n-asleeponduty"

    编辑:我做了一个小的修改。新版本适用于您的旧示例和新示例。

    gsub('.*?body.*?:\"(.*?)\",\"\\w+\"\\s*:.*', "\\1", json_file)
    

    [1] “文档中关于指向 图书馆功能,浏览时很烦人 文件!”

    【讨论】:

    • 我对有效的 JSON 进行了一些编辑,请提出您的想法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-19
    • 2018-01-25
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多