只能访问Python unicode字典中列表的最后一个元素
我的Python unicode字典如下所示:只能访问Python unicode字典中列表的最后一个元素,python,django,python-2.7,dictionary,unicode,Python,Django,Python 2.7,Dictionary,Unicode,我的Python unicode字典如下所示: `<QueryDict: {u'csrfmiddlewaretoken':[u'oacUfIz5q2tPtmSoqCQi7tBDn2ejpt4x9ZiFeLKeIOyB2CHvAoJqbe1cHNZJSObP'], u'Date and Events[]': [u'2000-09-09', u'bday', u'second']}>` `` 当我尝试访问键为“Date and Events[]”的元素时,我只得到列表的最后一个元素。
`<QueryDict: {u'csrfmiddlewaretoken':[u'oacUfIz5q2tPtmSoqCQi7tBDn2ejpt4x9ZiFeLKeIOyB2CHvAoJqbe1cHNZJSObP'], u'Date and Events[]': [u'2000-09-09', u'bday', u'second']}>`
``
当我尝试访问键为“Date and Events[]”的元素时,我只得到列表的最后一个元素。知道为什么会发生这种情况吗?使用.getlist(键)
:
qd=QueryDict('a=1&a=2')#一个简单的QueryDict
>>>量子点
>>>qd['a']#问题示例(仅最后一项)
'2'
>>>qd.get('a')#问题未由.get()解决
'2'
>>>getlist('a')#getlist()解决了这个问题!
['1', '2']
详细信息:
您的字典的类型为“是一个类似字典的类,定制用于处理同一个键的多个值。”不幸的是,“仅返回最后一个值”。这意味着调用someQueryDict[key]
将不会返回列表,即使有多个值与该键关联
解决方案是使用:
以Python列表的形式返回带有请求键的数据。返回一个
如果密钥不存在且未提供默认值,则列表为空。
它保证返回某种类型的列表,除非使用默认值
提供的不是列表
__Dict中的getitem_ux;()返回项目的原样。可以是int、float、string或list。但QueryDict的情况并非如此。您必须使用QueryDict.getlist(key)或将其转换为Dict才能完成工作。假设“qd”是您要从中提取项目的查询信息
date = QueryDict.getlist('Date')
events = QueryDict.getlist('Events[]')
如果您希望将QueryDict转换为dict,那么您可以这样做来完成任务
myDict = dict(qd.iterlists())
date = myDict['Date']
events = myDict['Events[]']
myDict = dict(qd.iterlists())
date = myDict['Date']
events = myDict['Events[]']