获取文本Python之间的字符串

获取文本Python之间的字符串,python,string,variables,python-2.7,Python,String,Variables,Python 2.7,如果我有: 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”和“123

如果我有:

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”提取到它们自己的变量中?

将字符串按空格分割,提取最后一个元素,去掉引号并用于解析查询参数:

>>> 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'

按空格拆分字符串,获取最后一个元素,去掉引号并用于解析查询参数:

>>> 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'

您可以使用以下代码,假设以下所有字符串的格式相同:

>>> info = '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"'
>>> name = info.split()[-1].split('&')[0].split('=')[1]
>>> code = info.split()[-1].split('&')[1].split('=')[1]
>>> name
'josh'
>>> code
'12345'
第一个
.split()
是将整个字符串作为列表获取

[-1]
将获取列表中的最后一项

.split('&')
是用
'&'
分割最后一个序列

[0]
[1]
用于指定要获取的值,即名称或代码

split('=')
是用等号分割每个值,这样我们就可以获得名称或代码作为一个值


最后一个
[1]
是获取最后一个值,基本上排除
'name'
'zipcode'

您可以使用以下代码,假设以下所有字符串的格式相同:

>>> info = '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"'
>>> name = info.split()[-1].split('&')[0].split('=')[1]
>>> code = info.split()[-1].split('&')[1].split('=')[1]
>>> name
'josh'
>>> code
'12345'
第一个
.split()
是将整个字符串作为列表获取

[-1]
将获取列表中的最后一项

.split('&')
是用
'&'
分割最后一个序列

[0]
[1]
用于指定要获取的值,即名称或代码

split('=')
是用等号分割每个值,这样我们就可以获得名称或代码作为一个值


最后一个
[1]
是获取最后一个值,基本上是排除
'name'
'zipcode'
您可以使用拆分函数

o = "name=josh&zipcode=12345"

a = o.split('&') # ['name=josh', 'zip=12345']
d = dict(s.split('=') for s in a)
会给你一个很好的键值对字典:)

或者你可以根据你的需要使用其他东西


您可以使用拆分功能

o = "name=josh&zipcode=12345"

a = o.split('&') # ['name=josh', 'zip=12345']
d = dict(s.split('=') for s in a)
会给你一个很好的键值对字典:)

或者你可以根据你的需要使用其他东西