Python 如何在文档中循环保存所有适用的结果

Python 如何在文档中循环保存所有适用的结果,python,Python,我有一个包含结果记录的文档,我要做的是在文档中循环并保存每个正确的结果 这是我当前的代码,工作正常,但只返回第一个结果 #Fetch router descriptors based on a given flag def getHSDirFlag(): for r in router.itervalues(): if 'HSDir' in r['flags']: return r return None 我试过: def getHSDirF

我有一个包含结果记录的文档,我要做的是在文档中循环并保存每个正确的结果

这是我当前的代码,工作正常,但只返回第一个结果

#Fetch router descriptors based on a given flag
def getHSDirFlag():
   for r in router.itervalues():
        if 'HSDir' in r['flags']:
            return r
   return None
我试过:

def getHSDirFlag():
   HSDirList =()
   for r in router.itervalues():
        if 'HSDir' in r['flags']:
            HSDirList += r
        return HSDirList
   return None
但是得到错误TypeError:只能将元组(而不是“dict”)连接到元组


保存dict的最佳数据类型是什么?我如何在文档中循环查找每个结果?首先,为什么要调用变量
HSDirList
,使其成为
元组,而不是
列表

第二,为什么
返回
for
循环的
内的“列表”,然后在函数末尾加上一个
return None
(永远不会到达)

尝试:

请注意,
return
for
循环之外,因此在遍历所有
itervalues
之前不会发生。另外,
router
现在是函数的参数,而不是依赖于作用域


<>最后,你应该阅读并考虑实现.

你可以把字典保存在<代码> JSON< /代码>文件中!在这段代码中,您有一个元组,您希望在元组上连接字典,但我建议您使用
JSON
保存dicts

此代码用于保存json文件:

import json
with open('data.json', 'wb') as fp:
    json.dump(data, fp)
这件是用来装东西的

with open('data.json', 'rb') as fp:
    data = json.load(fp)
阅读更多

with open('data.json', 'rb') as fp:
    data = json.load(fp)