我需要一个标题是这样的:解析HTTP请求授权头与Python
Authorization: Digest qop="chap",
realm="[email protected]",
username="Foobear",
response="6629fae49393a05397450978507c4ef1",
cnonce="5ccc069c403ebaf9f0171e9517f40e41"
并解析它这个使用Python:
{'protocol':'Digest',
'qop':'chap',
'realm':'[email protected]',
'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)))
到目前为止,解决方案哈事实证明它只是超级干净,但也非常强大。尽管不是RFC的最“靠书”实现,但我还没有构建一个返回无效值的测试用例。然而,我只用它来解析授权头,我感兴趣的其他头文件的随机数需要解析,所以这可能不是一个很好的解决方案,因为它是一个通用的HTTP头解析器。 – 2009-09-04 11:35:52