【问题标题】:Getting the array as GET query parameters in Python在 Python 中获取数组作为 GET 查询参数
【发布时间】:2011-12-17 21:54:01
【问题描述】:

我知道在 php 中我可以只使用 $_GET['key1']['key2'] 来检索以数组形式发送的 GET 数据,但在 Python 中这可能是因为我只收到一个字符串并且它不被识别为数组/列表。

如果这很重要,我会使用 flask/werkzeug。

【问题讨论】:

  • 在投票结束问题之前学习阅读问题以及人们真正想要什么。我知道如何获取请求参数,这不是我问的。您的网址没有带来任何新内容。
  • 我没有投票关闭任何东西。毕竟我只有不到100个代表,所以我不能这样做。我给了你一个可能有用的链接。

标签: python list flask request werkzeug


【解决方案1】:

参数名称的深度解析对于 PHP AFAIK 来说是独一无二的。

如果您只需要一个简单的列表,只需传递几个同名的参数并使用request.args.getlist(<paramname>) (documentation)。

否则你必须自己解析查询字符串。

【讨论】:

  • 我害怕那个。不幸的是,我正在从发送数组的支付网关解析 IPN,所以我必须将它们解析为我相信的字符串。
  • IPN_REFNO[23456,23465]&IPN_TOTALAMOUNT[2133,3455]
【解决方案2】:

request.args 是一个 MultiDict 实例(MultiDictFlask 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... — 这会成为一个问题……
  • 嗨...!!!我正在使用它,但它不起作用,我正在使用括号。非常感谢,因为它并不明显,现在工作正常:)
猜你喜欢
  • 2011-04-04
  • 2021-12-23
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多