Python Cookie库不支持过期格式

时间:2012-06-15 18:27:23

标签: python cookies

我正在尝试使用Python Cookie库,但它似乎不支持expire属性的标准日期格式(RFC 822)。例如,在Python提示中:

>>> import Cookie
>>> cookie = Cookie.SimpleCookie('bcookie="123"; Expires=Sat, 14-Jun-2014 23:03:13 GMT;')
>>> cookie['bcookie']['expires']
'Sat,'

这是标准标题,但它会将日期处理到第一个空格。难道我做错了什么?我需要完整的expire属性,并且如果我不需要,我将不得不编写自己的cookie库。

2 个答案:

答案 0 :(得分:2)

根据Doug Hellman的优秀Python Module of the Week site正确用法是

c = Cookie.SimpleCookie()
expires = datetime.datetime.now() + datetime.timedelta(hours=1)
c['bcookie']['expires'] = expires.strftime('%a, %d %b %Y %H:%M:%S') # Wdy, DD-Mon-YY HH:MM:SS GMT

我甚至无法弄清楚你对SimpleCookie的争论是什么,但PyMOTW是一个很好的辅助资源,因为主要文档可能有点密集。

答案 1 :(得分:1)

我在同样的问题上挣扎。我只是采用headers['set-cookie']并创建Cookie.SimpleCookie

过了一会儿,我意识到我正在消费的网站没有引用日期。

这是我尝试的解决方案:

cookie = Cookie.SimpleCookie('bcookie="123"; Expires="Sat, 14-Jun-2014 23:03:13 GMT";')

不幸的是,这并没有解决我的核心问题。但是,至少我理解为什么。