通过嵌套字典过滤

时间:2020-03-22 02:55:00

标签: python json

我有一个Python脚本(如下),并且在弄清楚如何在字典内的字典中进行过滤时遇到麻烦。我希望在有对象属性induction n; destruct m; auto. - apply sub_0_r. - apply IHn. 的情况下完成操作,然后将对象本身删除。如果有帮助,我正在尝试从GitHub/linguist中过滤掉HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\RunOnce HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

'type': 'data'

1 个答案:

答案 0 :(得分:0)

您的代码有两个问题。

第一个是del language是键值,而不是字典中对其的引用。因此,您需要将其更改为del data[language]才能真正删除字典中的键和值。

第二个是您要根据字典的大小进行循环。更改for language in data以通过执行for language in data.keys()来遍历键,这将解决字典调整大小的问题。

最终代码:

for language in data.keys():
    if data[language]['type'] == 'data':
        del data[language]

还有另一个优化。将内容分配给数据后,您可以关闭文件,因为您不再使用它。老实说,这只会在文件内容很大时有所作为,因为它将释放要使用的内存。