我需要像这样的标题:
Authorization: Digest qop="chap",
realm="testrealm@host.com",
username="Foobear",
response="6629fae49393a05397450978507c4ef1",
cnonce="5ccc069c403ebaf9f0171e9517f40e41"
Run Code Online (Sandbox Code Playgroud)
并使用Python将其解析为:
{'protocol':'Digest',
'qop':'chap',
'realm':'testrealm@host.com',
'username':'Foobear',
'response':'6629fae49393a05397450978507c4ef1',
'cnonce':'5ccc069c403ebaf9f0171e9517f40e41'}
Run Code Online (Sandbox Code Playgroud)
有没有一个图书馆可以做到这一点,或者我可以寻找灵感的东西?
我在谷歌应用引擎上这样做,我不确定Pyparsing库是否可用,但如果它是最好的解决方案,我可以将它包含在我的应用程序中.
目前我正在创建自己的MyHeaderParser对象,并在头字符串上使用reduce().它工作,但非常脆弱.
以下是nadia的精彩解决方案:
import re
reg = re.compile('(\w+)[=] ?"?(\w+)"?')
s = """Digest
realm="stackoverflow.com", username="kixx"
"""
print str(dict(reg.findall(s)))
Run Code Online (Sandbox Code Playgroud)