如何从JSON格式字符串中提取目标值.68?
正确提取JSON中指定值的R语言方法
你之前用sub函数失败的原因是正则表达式里的.*:是贪婪匹配,会直接匹配到字符串最后一个冒号,所以拿到的是最后一个value的内容。处理JSON格式数据,不要用正则硬拆,用专门的JSON解析包才是靠谱的方案,推荐用jsonlite:
步骤1:安装并加载jsonlite包
# 未安装的话先执行安装 install.packages("jsonlite") library(jsonlite)
步骤2:解析JSON字符串
假设你的JSON内容存在变量json_str中:
json_str <- '{"values":[{"source":"source_value","value":".68"},{"source":"source.units","value":"%"},{"source":"source_name","value":"Chemical"}]}' # 将JSON字符串解析为R可操作的数据结构 json_data <- fromJSON(json_str)
步骤3:提取目标值
筛选source为source_value对应的value:
target_value <- json_data$values[json_data$values$source == "source_value", "value"] print(target_value) # 输出结果:[1] ".68"
如果你的JSON数据是存在数据框的value_as_string列中,只需循环处理每一行的字符串即可,核心逻辑不变。
内容的提问来源于stack exchange,提问作者Jamie
相关产品推荐
相关产品推荐

