sys*_*out 218
试试这样的事情:
import urlparse
url = 'http://foo.appspot.com/abc?def=ghi'
parsed = urlparse.urlparse(url)
print urlparse.parse_qs(parsed.query)['def']
Run Code Online (Sandbox Code Playgroud)
Cri*_*ris 53
import urlparse
url = 'http://example.com/?q=abc&p=123'
par = urlparse.parse_qs(urlparse.urlparse(url).query)
print par['q'][0], par['p'][0]
Run Code Online (Sandbox Code Playgroud)
jba*_*037 45
我很震惊这个解决方案已不在这里了.使用:
request.GET.get('variable_name')
Run Code Online (Sandbox Code Playgroud)
这将从"GET"字典中"获取"变量,如果存在,则返回"variable_name"值,如果不存在,则返回None对象.
小智 37
对于Python> 3.4
from urllib import parse
url = 'http://foo.appspot.com/abc?def=ghi'
query_def=parse.parse_qs(parse.urlparse(url).query)['def'][0]
Run Code Online (Sandbox Code Playgroud)
May*_*wal 20
有一个名为furl的新库.我发现这个库是做网址代数最pythonic的.安装:
pip install furl
Run Code Online (Sandbox Code Playgroud)
码:
from furl import furl
f = furl("/abc?def='ghi'")
print f.args['def']
Run Code Online (Sandbox Code Playgroud)
iCa*_*Fay 17
我知道这有点晚了但是因为我今天发现自己在这里,我认为这对其他人来说可能是一个有用的答案.
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
Run Code Online (Sandbox Code Playgroud)
使用parse_qsl(),"数据将作为名称,值对的列表返回."
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)
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助
在纯 Python 中:
def get_param_from_url(url, param_name):
return [i.split("=")[-1] for i in url.split("?", 1)[-1].split("&") if i.startswith(param_name + "=")][0]
Run Code Online (Sandbox Code Playgroud)