我需要这样一个标题:
Authorization: Digest qop="chap",
realm="testrealm@host.com",
username="Foobear",
response="6629fae49393a05397450978507c4ef1",
cnonce="5ccc069c403ebaf9f0171e9517f40e41"
并使用Python将其解析为:
{'protocol':'Digest',
'qop':'chap',
'realm':'testrealm@host.com',
'username':'Foobear',
'response':'6629fae49393a05397450978507c4ef1',
'cnonce':'5ccc069c403ebaf9f0171e9517f40e41'}
有图书馆可以这样做吗?或者我可以找点灵感?
我是在Google App Engine上做的,我不确定Pyparsing库是否可用,但如果是最好的解决方案,也许我可以将它包含在我的应用程序中。
目前,我正在创建自己的MyHeaderParser对象,并将其与头字符串上的reduce()一起使用。它在工作,但很脆弱。
纳迪亚的绝妙解决方案如下:
import re
reg = re.compile('(\w+)[=] ?"?(\w+)"?')
s = """Digest
realm="stackoverflow.com", username="kixx"
"""
print str(dict(reg.findall(s)))
您也可以像CheryPy那样使用urllib2。
以下是片段:
它输出:
下面是我的pyparsing尝试:
打印内容:
我不熟悉RFC,但我希望这能帮你搞定。
一点正则表达式:
相关问题 更多 >
编程相关推荐