csv的R文件夹';将数据合并到一个JSON数组中
我有一个csv文件夹:csv的R文件夹';将数据合并到一个JSON数组中,json,r,csv,Json,R,Csv,我有一个csv文件夹: Art.csv Cars.csv Food.csv 每个csv都有一个名为words 我想在文件夹中循环,使用专栏的内容和标题创建一些JSON,格式如下: { "Art" : ['word 1', 'word 2'], "Cars" : ['word 1'], "Food" : ['word 1', 'word 2', 'word 3'] } 以下是一些测试数据: file_list <- list.files() file_lis
Art.csv
Cars.csv
Food.csv
每个csv都有一个名为words
我想在文件夹中循环,使用专栏的内容和标题创建一些JSON,格式如下:
{
"Art" : ['word 1', 'word 2'],
"Cars" : ['word 1'],
"Food" : ['word 1', 'word 2', 'word 3']
}
以下是一些测试数据:
file_list <- list.files()
file_list <- c("Art.csv", "Cars.csv", "Food.csv")
test <- data.frame(words = c("Word 1", "Word 2"))
lapply(file_list, function(x) write.csv(test, x, row.names = F))
可能有一种完全不同的方法更好,我对此非常开放。我有大约5000个文件
编辑让我试着更清楚一点
我成功创建了一个包含json文件的文件夹,如:
Art.json
Cars.json
Food.json
Art.json
看起来像:
['word 1'、'word 2']
现在我要做的是将所有这些文件合并成一个大json,如:
{
"Art" : ['word 1', 'word 2'],
"Cars" : ['word 1'],
"Food" : ['word 1', 'word 2', 'word 3']
}
下次你可以添加一个可以像我在代码中那样重用的示例吗。我找到了以下解决方案,希望对您有用:
file_list <- list.files()
file_list <- c("Art.csv", "Cars.csv", "Food.csv")
# Make an example that can be used
test <- data.frame(words = c("Word 1", "Word 2"))
lapply(file_list, function(x) write.csv(test, x, row.names = F))
list_df <-lapply(file_list, function(x) read.csv(x))
one_list <- lapply(list_df, function(x) x$words)
names(one_list) <- gsub(".csv","",file_list)
toJSON(one_list)
> toJSON(one_list)
[1] "{\"Art\":[\"Word 1\",\"Word 2\"],\"Cars\":[\"Word 1\",\"Word 2\"],\"Food\":[\"Word 1\",\"Word 2\"]}"
file\u list write.table有一个选项可以设置是否要引用(因此可以替换其中的任何引用),但请参见答案。请提供您在不使用.csv.txt
的情况下创建名称的努力。这有助于我编辑问题。名称部分是我创建干净名称向量的地方。但是不确定如何将这些添加到文件中的json中,我不理解你的问题。你能澄清一下吗?编辑应该是清晰的。你能提供一些数据,我可以修复这个错误吗?忽略这一点,它在重新开始时起作用。我现在唯一的问题是需要删除一些空白。我尝试了以下方法,但失败了:你可以添加列表,我试试。目前正在做的:list_df失败,但我做了:two_list
{
"Art" : ['word 1', 'word 2'],
"Cars" : ['word 1'],
"Food" : ['word 1', 'word 2', 'word 3']
}
file_list <- list.files()
file_list <- c("Art.csv", "Cars.csv", "Food.csv")
# Make an example that can be used
test <- data.frame(words = c("Word 1", "Word 2"))
lapply(file_list, function(x) write.csv(test, x, row.names = F))
list_df <-lapply(file_list, function(x) read.csv(x))
one_list <- lapply(list_df, function(x) x$words)
names(one_list) <- gsub(".csv","",file_list)
toJSON(one_list)
> toJSON(one_list)
[1] "{\"Art\":[\"Word 1\",\"Word 2\"],\"Cars\":[\"Word 1\",\"Word 2\"],\"Food\":[\"Word 1\",\"Word 2\"]}"