我需要一個標題是這樣的:解析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