如何在R中将JSON格式字符串列拆分为多个对应字段列
解决方案
你之前用separate失效的核心原因有两个:一是正则分隔符规则写错,二是字符串拆分的方式天生不适合处理这类结构化键值对数据,一旦值中包含逗号、引号等特殊字符会直接出现拆分错位问题,容错率极低,直接做JSON解析是最稳定的解法。
实现步骤(R语言tidyverse生态)
- 先把字符串里的单引号替换为双引号,转换为标准JSON格式
- 逐行解析JSON为列表结构
- 把列表直接展开为多列即可
可运行代码示例
# 加载依赖包 library(tidyverse) library(jsonlite) # 处理数据 result <- data %>% # 替换单引号为双引号,生成合法JSON格式 mutate(address = str_replace_all(address, "'", '"'), # 逐行解析JSON字符串为列表 address_list = map(address, fromJSON)) %>% # 把列表内容展开为独立字段列 unnest_wider(address_list)
执行后你需要的district、city等10个字段会自动生成对应列,值和原字典内容完全匹配。
注意事项
如果你的实际数据中存在值本身包含单引号的情况,可以提前对值内的单引号做转义处理,避免替换全局单引号时破坏JSON结构。
内容的提问来源于stack exchange,提问作者dantaspg
相关产品推荐
相关产品推荐

