如何在Python中获取请求的值?

问题描述 投票:1回答:2

当我打印到达POST的request时,我得到了这个结果。

<QueryDict: {u'form_values': [u'nombre=Juan&apellidos=Perez&[email protected]&[email protected]&telefono=5598764&celular=8971265256&calle_numero=Calle+#10&colonia=San+Pablo&municipio=&estado=&pais=&cPostal=&razonS=&rfc=&callenumero=&colonia=&municipio=&estado=&codPos='], u'pass': [u'k7iwriilqm66mtnu2m1x'], u'csrfmiddlewaretoken': [u'kkxdVbDzPXhfDazzSVvIvAYizExoRSFR'], u'clabe': [u'8jO9ChGsKXJfrBtb4vBMsxQKdA8L7Y0h']}>

我怎样才能获得form_values单独出现的值(nombreapellidos)?

python django
2个回答
1
投票

看起来您在form_values URL参数中收到了URL编码的查询字符串。如果是这样,您可以使用urlparse标准库解析该查询字符串,如下所示:

import urlparse
url_str = query_dict["form_values"][0]
form_dict = urlparse.parse_qs(url_str)
print(form_dict)
# {'correo': ['[email protected]'], 'calle_numero': ['Calle #10'], 'colonia': ['San Pablo'], 'confiCorreo': ['[email protected]'], 'apellidos': ['Perez'], 'celular': ['8971265256'], 'nombre': ['Juan'], 'telefono': ['5598764']}

urlparse.parse_qs接受一个查询字符串并返回一个本地字典,其中包含键到列表值的映射。如果某个键在查询字符串中出现多次,则该列表将包含多个值。如果需要,请参阅docs for more details


0
投票

这应该工作:

d = dict(queryDict.iterlists())
formvalues = d['form_values']
queries = formvalues.split('&')
nombre = queries[0].split('=')[1]
apellidos = queries[1].split('=')[1]

你也可以看看this answer

© www.soinside.com 2019 - 2024. All rights reserved.