在Python中将JSON渲染到目录结构

马特乌斯·沃伊特

我想存储一个JSON结构,其中包含我当前正在处理的项目和文件。文件结构如下所示:

|-project1
|--sequence1
|----file1.ext
|----file2.ext
|-project2
|--sequence1
|----file1.ext
|----file2.ext
|-project3
|--sequence3
|----file1.ext
|----file2.ext

JSON版本如下所示:

data = [
  {
    type: "folder",
    name: "project1",
    path: "/project1",
    children: [
      {
        type: "folder",
        name: "sequence1",
        path: "/project1/sequence1",
        children: [
          {
            type: "file",
            name: "file1.ext",
            path: "/project1/sequence1/file1.ext"
          } , {
            type: "file",
            name: "file2.ext",
            path: "/project1/sequence1/file2.ext"

            ...etc
          }
        ]
      }
    ]
  }
]

是否可以使用Python将这种结构呈现到实际的目录和文件?(它可以是空文件)。另一方面,我想构建一个遍历现有目录的函数,返回相似的JSON代码。

米吉尔森

这应该很容易使用递归函数和os模块中的一些好东西来创建字典...:

import os

def dir_to_list(dirname, path=os.path.pathsep):
    data = []
    for name in os.listdir(dirname):
        dct = {}
        dct['name'] = name
        dct['path'] = path + name

        full_path = os.path.join(dirname, name)
        if os.path.isfile(full_path):
            dct['type'] = 'file'
        elif os.path.isdir(full_path):
            dct['type'] = 'folder'
            dct['children'] = dir_to_list(full_path, path=path + name + os.path.pathsep)
        data.append(dct)
    return data

未经测试

然后,您可以将json.dump其保存为文件或json.dumps字符串。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章