使用urlparse.parse_qs()
解析URL编码的键值对。
演示:
>>> import urlparse
>>> inputstr = 'AccountSid=AC03e13571d5434152f33553f6&MessageSid=SM16bbbc0a82847e61200a59d82cc1732b&Body=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DZtWUF1MmaMA%26feature%3Dyoutube_gdata_player&ToZip=92707&ToCity=GARDEN+GROVE&FromState=CA&ToState=CA&SmsSid=SM16bbbc0a82847e61200a59d82cc1732b&To=%2B17147866508&ToCountry=US&FromCountry=US&SmsMessageSid=SM16bbbc0a82847e61200a59d82cc1732b&ApiVersion=2010-04-01&FromCity=SANTA+ANA&SmsStatus=received&NumMedia=0&From=%2B17145420218&FromZip=92704'
>>> from pprint import pprint
>>> pprint(urlparse.parse_qs(inputstr))
{'AccountSid': ['AC03e13571d5434152f33553f6'],
'ApiVersion': ['2010-04-01'],
'Body': ['https://www.youtube.com/watch?v=ZtWUF1MmaMA&feature=youtube_gdata_player'],
'From': ['+17145420218'],
'FromCity': ['SANTA ANA'],
'FromCountry': ['US'],
'FromState': ['CA'],
'FromZip': ['92704'],
'MessageSid': ['SM16bbbc0a82847e61200a59d82cc1732b'],
'NumMedia': ['0'],
'SmsMessageSid': ['SM16bbbc0a82847e61200a59d82cc1732b'],
'SmsSid': ['SM16bbbc0a82847e61200a59d82cc1732b'],
'SmsStatus': ['received'],
'To': ['+17147866508'],
'ToCity': ['GARDEN GROVE'],
'ToCountry': ['US'],
'ToState': ['CA'],
'ToZip': ['92707']}
'urlparse'是模块U [R寻找。 –
高效?您试过了什么效率低下的方法? – Gogo
最有效的方法是在程序集中编写解析器,并在C中使用一个小扩展模块来使用它。玩的开心! – geoffspear