给定如下的URL,如何解析查询参数的值?例如,在本例中,我想要some_key的值。
/some_path?some_key=some_value'
我在我的环境中使用Django;请求对象上是否有可以帮助我的方法?
我尝试使用self.request.get('some_key'),但它没有返回值some_value,因为我希望。
给定如下的URL,如何解析查询参数的值?例如,在本例中,我想要some_key的值。
/some_path?some_key=some_value'
我在我的环境中使用Django;请求对象上是否有可以帮助我的方法?
我尝试使用self.request.get('some_key'),但它没有返回值some_value,因为我希望。
当前回答
def getParams(url):
params = url.split("?")[1]
params = params.split('=')
pairs = zip(params[0::2], params[1::2])
answer = dict((k,v) for k,v in pairs)
希望这能有所帮助
其他回答
我发现对于Tornado的用户来说没有答案:
key = self.request.query_arguments.get("key", None)
此方法必须在派生自以下处理程序的处理程序中工作:
tornado.web.RequestHandler
当无法找到所请求的键时,此方法将返回None。这为您节省了一些异常处理。
顺便说一句,我有使用parse_qs()和获得空值参数的问题,并了解到您必须通过第二个可选参数“keep_blank_values”来返回查询字符串中不包含值的参数列表。默认为false。一些蹩脚的api需要参数,即使它们不包含任何值
for k,v in urlparse.parse_qs(p.query, True).items():
print k
urlparse模块提供了你需要的一切:
urlparse.parse_qs ()
我知道这有点晚了,但自从我发现自己今天在这里,我想这可能对其他人有用的答案。
import urlparse
url = 'http://example.com/?q=abc&p=123'
parsed = urlparse.urlparse(url)
params = urlparse.parse_qsl(parsed.query)
for x,y in params:
print "Parameter = "+x,"Value = "+y
使用parse_qsl(),“数据以名称、值对的列表形式返回。”
参数= dict([part.split('=')) for part in get_parsed_url [4] .split (' & '))
这一点很简单。变量参数将包含所有参数的字典。