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"
}
]
}
]
}
]