在 Python 中获取数组作为 GET 查询参数
Posted
技术标签:
【中文标题】在 Python 中获取数组作为 GET 查询参数【英文标题】:Getting the array as GET query parameters in Python 【发布时间】:2011-12-17 21:54:01 【问题描述】:我知道在 php 中我可以只使用 $_GET['key1']['key2']
来检索以数组形式发送的 GET 数据,但在 Python 中这可能是因为我只收到一个字符串并且它不被识别为数组/列表。
如果这很重要,我会使用 flask/werkzeug。
【问题讨论】:
在投票结束问题之前学习阅读问题以及人们真正想要什么。我知道如何获取请求参数,这不是我问的。您的网址没有带来任何新内容。 我没有投票关闭任何东西。毕竟我只有不到100个代表,所以我不能这样做。我给了你一个可能有用的链接。 【参考方案1】:参数名称的深度解析对于 PHP AFAIK 来说是独一无二的。
如果您只需要一个简单的列表,只需传递几个同名的参数并使用request.args.getlist(<paramname>)
(documentation)。
否则你必须自己解析查询字符串。
【讨论】:
我害怕那个。不幸的是,我正在从发送数组的支付网关解析 IPN,所以我必须将它们解析为我相信的字符串。 IPN_REFNO[23456,23465]&IPN_TOTALAMOUNT[2133,3455]【参考方案2】:request.args
是一个 MultiDict 实例(MultiDict、Flask request api)。
request.args[key] ## returns a single value, the first if there are multiple
request.args.getlist(key) ## returns a list
如果您想提交比使用简单 key:vals 编码更复杂的结构,请考虑发送一个 json 编码对象。
另外,查看 jQuery 递归参数序列化 pattern,以及可以反序列化它的 jquery-unparam 库。
【讨论】:
如果所有变量都作为&var[]=1&var[]=2...
传递,getlist 会有所帮助。在这种情况下,我会简单地使用request.args.getlist('var[]')
。但是,如果参数是通过键传递的:&var[0]=1&var[1]=2...
— 这会成为一个问题……
嗨...!!!我正在使用它,但它不起作用,我正在使用括号。非常感谢,因为它并不明显,现在工作正常:)以上是关于在 Python 中获取数组作为 GET 查询参数的主要内容,如果未能解决你的问题,请参考以下文章