首页 > 解决方案 > 遍历 MultiDict 中的键和所有值

问题描述

我有一本字典

params = ImmutableMultiDict([('dataStore', 'tardis'), ('symbol', '1'), ('symbol', '2')])

我希望能够遍历字典并获取所有值及其键的列表。但是,当我尝试这样做时,它只获取第一个符号键值对而忽略另一个。

for k in params:
    print(params.get(k))

标签: pythonflask

解决方案


如果您阅读 的文档MultiDict,从中ImmutableMultiDict派生,您可以看到:

它的行为类似于普通的 dict,因此所有 dict 函数只会在找到一个键的多个值时返回第一个值。

但是,该 API 包含一个额外的方法.getlist,用于此目的。在文档中也有一个使用示例:

>>> d = MultiDict([('a', 'b'), ('a', 'c')])
# ...
>>> d.getlist('a')
['b', 'c']

推荐阅读