在 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 查询参数的主要内容,如果未能解决你的问题,请参考以下文章

传递 id 数组作为 net/http 的查询参数

BigQuery 在参数化查询中使用数组

数组作为 Postman GET 请求中的参数

iOS Swift moya框架发送数组作为请求参数(GET/POST)

如何获取大量 GET 参数并根据它们干净地过滤查询?

如何从我得到的数组中获取特定的数组元素作为调用 axios.get() 调用的函数的响应 [重复]