>>> s = 'param=value¶m=value¶m=value' >>> map(lambda x: x.split('='), s.split('&')) [['param', 'value'], ['param', 'value'], ['param', 'value']]
arr = re.findall('\[(\d+)\]=(\w+)', string)
barabansheg
Возможно ли распарсить строку вида param=value¶m=value¶m=value, где param всегда одно и то же, получить надо id и value.
param[id]=value¶m[id]=value
>>> s = 'param[id]=value¶m[id]=value' >>> map(lambda x: (x[0], x[1][1:]), (map(lambda x: x[1].split(']'), map(lambda x: x.split('['), s.split('&'))))) [('id', 'value'), ('id', 'value')]
>>> import re >>> >>> s = 'param[id1]=value1¶m[id2]=value2' >>> pattern = """ ... param\[ ... ([^]]+) # any chars except bracket ... \]= ... ([^&]+) # any chars except ampersand ... """ >>> lst = re.findall(pattern, s, re.X) >>> print(lst) [('id1', 'value1'), ('id2', 'value2')] >>>