首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将.csv转换为Json,多个属性值

将.csv转换为Json,多个属性值
EN

Stack Overflow用户
提问于 2015-08-27 02:35:39
回答 1查看 896关注 0票数 0

我正在尝试将电子表格转换为json文件,该文件将用Exhibit 3.0读取。这是一个样本电子表格(候选人的技能1-6):

代码语言:javascript
复制
label   Skills
1       SQL
2       SQL, SAS
3   
4       MS Office
5       MS Office, SQL
6       SAS

每当我尝试转换时,我都会得到:

代码语言:javascript
复制
[{"label":"1","Skills":"SQL"},
{"label":"2","Skills":"SQL, SAS"},
{"label":"3","Skills":""},
{"label":"4","Skills":"MS Office"},
{"label":"5","Skills":"MS Office, SQL"},
{"label":"6","Skills":"SAS"}]

我需要的是(注意方括号):

代码语言:javascript
复制
 [{"label":"1","Skills":"SQL"},
{"label":"2","Skills":["SQL", "SAS"]},
{"label":"3","Skills":""},
{"label":"4","Skills":"MS Office"},
{"label":"5","Skills":["MS Office", "SQL"]},
{"label":"6","Skills":"SAS"}]

只有这样,Exhibit才会接受候选人可以拥有多项技能。有没有办法创建这些方括号?或者,有没有其他方法可以设计电子表格,这样Exhibit就会认识到2号候选人有两项技能?我一直在使用R和Excel,到目前为止还没有找到解决方案。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2015-08-27 05:09:00

我尝试过重现您的代码,您的问题是您将技能看作是一列字符,如果您将每个元素都看作是一个向量,那么jsonlite包中的函数toJSON就做得很好,并且在将数组转换为JSON时将“”

代码语言:javascript
复制
df <- data.frame(
  label=1:6, 
  Skills2=c("SQL","SQL, SAS","","MS Office","MS Office, SQL","SAS"),
  stringsAsFactors=F)

df$Skills <- strsplit(df$Skills2, ", ")
df$Skills2 <- NULL

toJSON(df)

我希望它适用于你的

代码语言:javascript
复制
[{"label":1,"Skills":["SQL"]},
{"label":2,"Skills":["SQL","SAS"]},
{"label":3,"Skills":[]},
{"label":4,"Skills":["MS Office"]},
{"label":5,"Skills":["MS Office","SQL"]},
{"label":6,"Skills":["SAS"]}]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32234198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档