そのようなJSONを生成する簡単な方法はありますか?私はos.walk()
とos.listdir()
を見つけたので、ディレクトリに再帰的に下降してpythonオブジェクトを作成することもできますが、ホイールを再発明するように聞こえます、たぶん誰かがそのようなタスクの作業コードを知っていますか?
{
"type": "directory",
"name": "hello",
"children": [
{
"type": "directory",
"name": "world",
"children": [
{
"type": "file",
"name": "one.txt"
},
{
"type": "file",
"name": "two.txt"
}
]
},
{
"type": "file",
"name": "README"
}
]
}
このタスクは(いわば)「ホイール」ではないと思います。しかし、それはあなたが言及したツールを使用して簡単に達成できるものです:
import os
import json
def path_to_dict(path):
d = {'name': os.path.basename(path)}
if os.path.isdir(path):
d['type'] = "directory"
d['children'] = [path_to_dict(os.path.join(path,x)) for x in os.listdir\
(path)]
else:
d['type'] = "file"
return d
print json.dumps(path_to_dict('.'))