Python 如何保存';数组';从QueryDict变量

Python 如何保存';数组';从QueryDict变量,python,django,Python,Django,我的QueryDict结构如下: QueryDict:{u'tab[1][val1]:[u'val1',u'tab[1][val2]:[u'val2',u'tab[0][val1]:[u'val1',u'tab[1][val2]:[u'val2'] 我想将其存储在一个iterable变量中,以便执行以下操作: for x in xs: do_something(x.get('val1')) 其中x是制表符[0]等 我试过: dict(request.POST._iteritems())

我的QueryDict结构如下:

QueryDict:{u'tab[1][val1]:[u'val1',u'tab[1][val2]:[u'val2',u'tab[0][val1]:[u'val1',u'tab[1][val2]:[u'val2']

我想将其存储在一个iterable变量中,以便执行以下操作:

for x in xs:
   do_something(x.get('val1'))
其中x是制表符[0]等

我试过:

dict(request.POST._iteritems()) 
但它不返回tab[0],而是返回tab[0][val1]作为元素。 是否可以将整个制表符[idx]存储在变量中?

与传统的
dict
相比,Django有一些额外的方法来处理每个键的多个值;对您的目的有用的是:

QueryDict.iterlists()
类似于
QueryDict.iteritems()
,但它包括 字典中每个成员的所有值(作为列表)

QueryDict.getlist(键,默认值)
以Python列表的形式返回带有请求键的数据。如果键不存在且未提供默认值,则返回空列表。它保证返回某种类型的列表,除非默认值为no list

QueryDict.lists()
与items()类似,只是它包含字典每个成员的所有值,作为列表

因此,您可以执行以下操作:

qd = QueryDict(...)
for values in qd.lists():
    for value in values:
        do_something(value)
还要注意的是,像
get
这样的“普通”dict方法总是只返回一个值(该键的最后一个值)