Raj*_*hik 6 python django dictionary
我想在django项目中将dict转换为QueryDict.链接夫妇存在来解释这个(Django的:我可以从字典中创建的QueryDict?并且如何改变一个Django的QueryDict到Python字典?).这是我要翻译的简单字典abc = {'a': 1, 'b':[1,2,3]}.我试过这种方法:
from django.http import QueryDict
from django.utils.datastructures import MultiValueDict
abc = { 'a': 1, 'b':[1,2,3]}
mdict = MultiValueDict(abc)
qdict = QueryDict(mdict)
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误跟踪
/usr/lib/python2.7/urlparse.pyc in parse_qsl(qs, keep_blank_values, strict_parsing)
407 Returns a list, as G-d intended.
408 """
409 pairs = [s2 for s1 in qs.split('&') for s2 in s1.split(';')]
410 r = []
411 for name_value in pairs:
AttributeError: 'MultiValueDict' object has no attribute 'split'
Run Code Online (Sandbox Code Playgroud)
为什么会失败,我该如何完成?MultiValueDict和QueryDict之间有什么区别?
MultiValueDict是一本字典的子类,可以处理分配给key.So你应该通过多个值values的dict作为list。在这里, 1->[1]。
在 HttpRequest 对象中,GET 和 POST 属性是 django.http.QueryDict 的实例,django.http.QueryDict 是一个类似字典的类,用于处理同一个键的多个值。这是必要的,因为一些 HTML 表单元素,特别是 ,为同一个键传递多个值。
request.POST 和 request.GET 中的 QueryDicts 在正常请求/响应周期中访问时将是不可变的。要获得可变版本,您需要使用 .copy()。
然后MultiValueDict可以转换QueryDict为
abc = { 'a': [1], 'b':[1,2,3]}
mdict = MultiValueDict(abc)
qdict = QueryDict('', mutable=True)
qdict.update(mdict)
>>>QueryDict: {u'a': [1], u'b': [1, 2, 3]}>
>>>dict(qdict.iterlists())
{u'a': [1], u'b': [1, 2, 3]}
>>>qdict.getlist('b')
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4768 次 |
| 最近记录: |