如何将不同文件夹中的多个JSON文件转换为不同的 Dataframe

beq87vna  于 2023-04-22  发布在  其他
关注(0)|答案(1)|浏览(119)

我有几个文件夹,每个文件夹都有一个特定的名称,里面有几个JSON文件。我想把每个文件夹的JSON文件放在一起,把每组JSON文件转换成一个带有文件夹名称的dataframe。然后我想把不同的dataframe放在一个列表中。
例如,在路径'/in_my_path'中,我有3个文件夹,分别名为'name 1','name 2'和'name 3'。每个文件夹包含几个JSON文件。我想创建一个包含3个 Dataframe 的列表,名称为“name 1”,“name 2”和“name 3”。
感谢您的评分

ejk8hzay

ejk8hzay1#

purrr有几个超级有用的函数,用于遍历向量和列表,并将自定义函数应用于每个项目。下面的示例代码不会将JSON转换为 Dataframe ,因此您需要尝试一下。

# Path to folders which contain JSON files.
path <- 'my_path'

# List folders, excluding the containing folder.
folders <- list.dirs(path) %>%
    .[. != path ]

# Traverse folders, reading JSON contents of each folder.
json_list <- folders %>%
    purrr::map(function(folder) {
        json_files <- list.files(
            folder,
            '\\.json$', # pattern that identifies .json files
            full.names = TRUE
        )

        # ingest JSON data - note further processing required to convert list to data frame here
        json_data <- json_files %>%
            purrr::map(~jsonlite::fromJSON(readLines(.x)))

        return(json_data)
    }) %>%
    rlang::set_names(
        purrr::map_chr(folders, ~strsplit(.x, '/')[[1]] %>% tail(1)) # set names of list items to folder names
    )
})

相关问题