Python 迭代MultiDict中的键和所有值
我有一本字典Python 迭代MultiDict中的键和所有值,python,flask,Python,Flask,我有一本字典 params = ImmutableMultiDict([('dataStore', 'tardis'), ('symbol', '1'), ('symbol', '2')]) 我希望能够遍历字典并获得所有值及其键的列表。但是,当我尝试这样做时,它只获取第一个符号键值对,而忽略另一个 for k in params: print(params.get(k)) 如果您阅读的文档是从中派生的ImmutableMultiDict,您可以看到: 它的行为类似于普通dict,因此
params = ImmutableMultiDict([('dataStore', 'tardis'), ('symbol', '1'), ('symbol', '2')])
我希望能够遍历字典并获得所有值及其键的列表。但是,当我尝试这样做时,它只获取第一个符号键值对,而忽略另一个
for k in params:
print(params.get(k))
如果您阅读的文档是从中派生的ImmutableMultiDict
,您可以看到:
它的行为类似于普通dict,因此,当找到一个键的多个值时,所有dict函数将仅返回第一个值
然而,API包含了一个用于此目的的附加方法。文档中也有一个使用它的示例:
如果您阅读的文档是从中派生的ImmutableMultiDict
,您可以看到:
它的行为类似于普通dict,因此,当找到一个键的多个值时,所有dict函数将仅返回第一个值
然而,API包含了一个用于此目的的附加方法。文档中也有一个使用它的示例:
如果我理解正确,您希望迭代所有键,包括重复键,对吗?然后您可以使用将
multi
设置为True
的方法
文件:
项目(多个=假)
返回(键、值)
对的迭代器
参数:multi
–如果设置为True,则返回的迭代器将为每个键的每个值都有一对。否则它将只包含
为每个键的第一个值配对
如果我误解了你的意思,你想要一个单键所有条目的列表,看看jonrsharpe的答案。如果我理解正确,你想迭代所有键,包括重复键,对吗?然后您可以使用将
multi
设置为True
的方法
文件:
项目(多个=假)
返回(键、值)
对的迭代器
参数:multi
–如果设置为True,则返回的迭代器将为每个键的每个值都有一对。否则它将只包含
为每个键的第一个值配对
如果我误解了你的意思,你想要一个单键所有条目的列表,请看一下jonrsharpe的答案。你的意思是什么?什么是
不可变的multidict
?这不是标准Python中的一个类。它来自Flask,如果你要使用常规字典,问题仍然存在。如果你要使用常规字典,问题就不存在了,因为如果你没有使用MultiDict
,就不会有重复的键。好吧,那么你的意思是说,什么是ImmutableMultiDict
?这不是标准Python中的一个类。它来自Flask,如果使用常规词典,问题仍然成立。如果使用常规词典,问题仍然成立,因为如果不使用MultiDict
,就不会有重复的键。好吧,这样做很公平,我可以从同一个键中提取两个项,谢谢这项工作我可以从同一个密钥中提取两项,谢谢
>>> d = MultiDict([('a', 'b'), ('a', 'c')])
# ...
>>> d.getlist('a')
['b', 'c']