Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
只能访问Python unicode字典中列表的最后一个元素_Python_Django_Python 2.7_Dictionary_Unicode - Fatal编程技术网

只能访问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[]”的元素时,我只得到列表的最后一个元素。

我的Python unicode字典如下所示:

`<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[]']