如果我理解正确,你想要的东西,如以下落得:
root/object
含data
root/users/otherobj
含data
- 等
所以让我们来破解这个有点。基本上,您需要做两件事情的能力:
- 决定在你的字典键的值是否为“数据”,或给予一定的数据的另一种解释
- ,它与给定的路径写入到一个文件
我将它留给你写这些功能,但我认为它们具有以下特征:
def is_data(obj)
返回True/False
(这可能是not isinstanceof(obj, dict)
,除非你的数据对象可能是一些特殊的属性类型的字典)
def write_data(directory, filename, obj)
在这一点上,我们已经准备好写遍历树的功能。我假设你将第一个关键字和字典从Main
中取出。对于每个(键,值)对,我们需要检查值是“数据”还是另一个字典。如果是数据,写出来。如果是另一个字典,我们将密钥添加到我们的路径中,并拨打字典。
def walk(root_directory, obj_dict):
for k, v in obj_dict.iteritems():
if is_data(v):
# write the file
write_data(root_directory, k, v)
else: # it's another dict, so recurse
# add the key to the path
new_root = os.path.join(root_directory, k) # you'll need to import os
walk(new_root, v)
@ZdaR一手满是谷歌的虚假魔术,根本没有帮助我。真相是我不知道该怎么尝试。这就是我来这里的原因。 – Cyanite
操作文件和目录的有用函数在'os','os.path'和'shutil'模块中。你可以使用递归函数来遍历你的字典。 –