Python / Django:如何反序列化foo [] = 1& foo [] = 2&

时间:2014-05-29 07:42:22

标签: python django get deserialization

是否有针对查询字符串的预构建反序列化器,如:

foo[]=1&foo[]=2&foo[]=34&....&foo[]=5

目前我正在使用replacesplit来处理字符串以获取包含所有值的序列,但我很好奇是否在Python或Django中没有一些实用程序/帮助器方法这样做。

显然Django在处理请求时可以做非常类似的事情,但我 a)不知道是否/如何使用它而 b)如果它可以从foo[]表示法接收序列。

注意:我无法更改源字符串,因为它源自第三方软件包。

更新

感谢您的回复。我的价值来自POST,所以我做了以下(不确定是否有更直接的方式,如request.GET.getlist()使用的答案):

foo = QueryDict(request.POST.get('my_var_name')).getlist('foo[]')

2 个答案:

答案 0 :(得分:2)

首先,绝对没有理由使用[]前缀发送数据。这是一个PHP或Rails习语,在Django中没有位置。

要从重复的参数中获取列表,您只需使用getlist

foos = request.GET.getlist('foo[]')

答案 1 :(得分:2)

只需使用getlist() method

检索所有值
foo_list = request.GET.getlist('foo[]')

包含括号,它们只是名称的一部分。