Extracting Values from a String
I am trying to extract values from a string, I have tried to get re.match
working but have not had any luck. The string is:
'/开发者_StackOverflow中文版opt/ad/bin$ ./ptzflip\r\nValue = 1800\r\nMin = 0\r\nMax = 3600\r\nStep = 1\r\n'
I have tried:
map(int,re.search("Value\s*=\s*").group(1))
and also:
'/opt/ad/bin$ ./ptzflip\r\nValue = 1800\r\nMin = 0\r\nMax = 3600\r\nStep = 1\r\n'.split(' = ')
I am not sure what else to add or do. I want to retrieve the attributes 'Value, Max, Step'
and their values. Is there anyway to do this?
Thanks for any help
For that particular string, the following parses it into a dictionary:
s = '/opt/ad/bin$ ./ptzflip\r\nValue = 1800\r\nMin = 0\r\nMax = 3600\r\nStep = 1\r\n'
d = {}
for pair in [val.split('=') for val in s.split('\r\n')[1:-1]]:
d[pair[0]] = int(pair[1])
>>> s = '/opt/ad/bin$ ./ptzflip\r\nValue = 1800\r\nMin = 0\r\nMax = 3600\r\nStep = 1\r\n'
>>> bits = s.split('\r\n')
>>> val, max_val, step = [int(bits[i].partition(' = ')[2]) for i in [1, 3, 4]]
>>> val
1800
>>> max_val
3600
>>> step
1
s = '/opt/ad/bin$ ./ptzflip\r\nValue = 1800\r\nMin = 0\r\nMax = 3600\r\nStep = 1\r\n'
data = {}
for l in s.split('\r\n'):
if " = " in l:
k,v = l.split(" = ")
data[k] = int(v)
print data
You are trying to use regexp, but I think you can simply split it by \r\n
and then use values with =
.
Something like:
s = '/opt/ad/bin$ ./ptzflip\r\nValue = 1800\r\nMin = 0\r\nMax = 3600\r\nStep = 1\r\n'
dct = {}
arr = [ss for ss in s.split('\r\n') if '=' in ss]
for e in arr:
k, v = e.split(' = ')
dct[k] = v
print dct
精彩评论