python代码

'''
将路径转换为 json 树结构
'''
import json
from collections import defaultdict

file = ['公共接口测试/data1.csv', '公共接口测试/data2.csv', '图像数据/2.no/0_0_baibaihe_0204.jpg']


def to_dict(d, c=None):
    if c == None:
        c = []
    if not d:
        return {}
    _d, r = defaultdict(list), []
    for a, *b in d:
        _d[a].append(b)
    return [
        {
             'name': a,
             'path': '/'.join(c + [a]),
             **({} if not (k := list(filter(None, b))) else {'children': to_dict(k, c + [a])})
        } for a, b in _d.items()
    ]


result = {'result': to_dict([i.split('/') for i in file])}

print(json.dumps(result["result"], indent=4, ensure_ascii=False))

# 输出:
[
    {
        "name": "公共接口测试",
        "path": "公共接口测试",
        "children": [
            {
                "name": "data1.csv",
                "path": "公共接口测试/data1.csv"
            },
            {
                "name": "data2.csv",
                "path": "公共接口测试/data2.csv"
            }
        ]
    },
    {
        "name": "图像数据",
        "path": "图像数据",
        "children": [
            {
                "name": "2.no",
                "path": "图像数据/2.no",
                "children": [
                    {
                        "name": "0_0_baibaihe_0204.jpg",
                        "path": "图像数据/2.no/0_0_baibaihe_0204.jpg"
                    }
                ]
            }
        ]
    }
]