Python 是否可以从同名的查询字符串中获取值?

Python 是否可以从同名的查询字符串中获取值?,python,query-string,tornado,Python,Query String,Tornado,我想知道是否可以从这个查询字符串中获取值 '?agencyID=1&agencyID=2&agencyID=3' 为什么必须使用这样的查询字符串? 我有一张有10个复选框的表格。我的用户应该向我发送他/她感兴趣的新闻机构的ID。因此,查询字符串包含多个同名值。新闻机构的总数是可变的,它们是从数据库加载的。 我正在使用Python Tornado解析查询字符串。阅读,这似乎是您想要的 RequestHandler.get_参数(name,strip=True) 返回一个列表

我想知道是否可以从这个查询字符串中获取值

'?agencyID=1&agencyID=2&agencyID=3'  
为什么必须使用这样的查询字符串?
我有一张有10个复选框的表格。我的用户应该向我发送他/她感兴趣的新闻机构的ID。因此,查询字符串包含多个同名值。新闻机构的总数是可变的,它们是从数据库加载的。
我正在使用Python Tornado解析查询字符串。

阅读,这似乎是您想要的

RequestHandler.get_参数(name,strip=True)

返回一个列表 具有给定名称的参数的。 如果参数不存在,则返回空列表。 返回的值始终是unicode

就这样

ids = self.get_arguments('agencyID')
注意,这里我使用了
get_参数
,还有一个
get_参数
,但它只获取一个参数


您可以使用

query = self.request.query

tornado.web.RequestHandler有两种获取参数的方法:

  • get_参数(id),它将获取名称为“id”的最后一个参数
  • get_arguments(id),它将把所有名为“id”的参数都放入一个列表中,即使只有一个参数

所以,可能您需要的是get_参数。

来自urllib.parse导入urlparse,parse_qsl
用于python3
>>> from urlparse import urlparse, parse_qs
>>> url = '?agencyID=1&agencyID=2&agencyID=3' 
>>> parse_qs(urlparse(url).query)
{'agencyID': ['1', '2', '3']}