如果我有:
127.0.0.1 - - [24/Feb/2014:03:36:46 +0100] "POST /info HTTP/1.1" 302 0 "http://website.com" "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36" "name=josh&zipcode=12345"
我怎样才能将“josh”和“12345”提取到它们自己的变量中?
最佳答案
用空格分割字符串,取最后一个元素,去除引号并使用 urlparse.parse_qsl()解析查询参数:
>>> from urlparse import parse_qsl
>>> s = '127.0.0.1 - - [24/Feb/2014:03:36:46 +0100] "POST /info HTTP/1.1" 302 0 "http://website.com" "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36" "name=josh&zipcode=12345"'
>>> params = parse_qsl(s.split()[-1].strip('"'))
>>> params
[('name', 'josh'), ('zipcode', '12345')]
然后,要将变量分配给参数值,您可以解压缩params
:
>>> name, zipcode = zip(*params)[1]
>>> name
'josh'
>>> zipcode
'12345'
关于python - 获取文本 Python 之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22549744/