字典中意外的额外重影值 python

Unexpected extra ghost value in dictionary python

我正在编写一个 Python 脚本,它使用 ftplib 模块从 ftp 位置下载文件。我下载的文件特别命名为 whatsnew.txt,位于 {ftp location}/{folder}/{subfolder} 内,有很多这样的文件夹,我下载了位于其中的所有 whatsnew.txt

我的做法是,在下载之前,我收集 ftp 位置的目录树的样子,并将其存储为字典(我也保存了这个字典,格式为 json 文件,在名为 directory_tree.txt).

的输出文件中

现在,当我解析此字典以获取 {folder} 和 {subfolder} 的值时,字典中出现意外的额外值,特别是图中所示的 /318/08318 是文件夹,08 是子文件夹。我不知道这个幽灵条目到底是从哪里来的。

这是意外的,因为这是有问题的文件夹的样子:

没有该死的 08 子文件夹。

这是我的代码片段 (Python 2.7.9),我认为我在其中出错了。我该如何解决我的错误?我如何解决这个额外的价值?我希望不需要驱魔。希望只是驱魔我的编程不足。谢谢。

for folder in directory_tree["ControlPatch_CPR"]: //Loop for checking dict entries
    for subfolder in folder:
        print str(folder) + " --- " + str(subfolder)
for folder in directory_tree["ControlPatch_CPR"]:
    for subfolder in folder:
        if len(subfolder) == 1:
            subfolder = "0" + subfolder
        ftp.cwd("/")
        print "\nretrieving {0}/ControlPatch/{1}/{2}/whatsnew.txt ...".format(ftplocation, folder, subfolder)
        with open("{0}.{1}.whatsnew.txt".format(folder, subfolder), "wb") as whatsnew:
            ftp.cwd("/ControlPatch/{0}/{1}".format(folder, subfolder))
            print "working directory: " + ftp.pwd()
            ftp.retrbinary("RETR /ControlPatch/{0}/{1}/whatsnew.txt".format(folder, subfolder), whatsnew.write)

还有,我很害怕

我已经解决了(?)我的问题,尽管我无法解释它。从我上面贴出的代码,我改了一部分来自:

for folder in directory_tree["ControlPatch_CPR"]:
    for subfolder in folder:
        if len(subfolder) == 1:

至:

for folder in directory_tree["ControlPatch_CPR"]:
    for subfolder in directory_tree["ControlPatch_CPR"][folder]:
        if len(subfolder) == 1:

这部分 directory_tree["ControlPatch_CPR"][folder] 是一个列表,因此我认为 subfolder in folder 只是指 folder 作为相同的可迭代对象。有人关心解释吗?谢谢。

总之,问题解决了。呼。我现在可以 return 到我的电脑了。