让python的Cookie.py模块支持冒号做key的方法

yipeiwu_com7年前Python基础
为了做好兼容性,只能选择兼容:冒号。

很简单,修改一下Cookie.Morsel
复制代码 代码如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""MorselHook, fix Cookie.CookieError: Illegal key value: ys-tab:entrance:e
"""

import Cookie
import string

_Morsel = Cookie.Morsel

class MorselHook(_Morsel):
"""
>>> import inspect
>>> (inspect.getargspec(MorselHook.set)[3])[0]
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!#$%&'*+-.^_`|~:"
>>> cookie = Cookie.SimpleCookie()
>>> cookie.load("ys-tab:entrance:e=abc; webpy_session_id=75eb60dcc83e2d902146af0bb7f47afe61fbd2b2")
>>> print cookie
Set-Cookie: webpy_session_id=75eb60dcc83e2d902146af0bb7f47afe61fbd2b2;
Set-Cookie: ys-tab:entrance:e=abc;
"""
def set(self, key, val, coded_val, LegalChars=Cookie._LegalChars+':', idmap=string._idmap, translate=string.translate):
return super(MorselHook, self).set(key, val, coded_val, LegalChars, idmap, translate)

Cookie.Morsel = MorselHook

# 在你需要使用到Cookie的地方先让上面的代码执行一遍


if __name__ == '__main__':
import doctest
doctest.testmod()

相关文章

使用Python为中秋节绘制一块美味的月饼

使用Python为中秋节绘制一块美味的月饼

对于在外的游子,每逢佳节倍思亲。而对于996ICU的苦逼程序猿们,最期待的莫过于各种节假日能把自己丢在床上好好休息一下了。这几天各公司都陆续开始发中秋礼品了。朋友圈各种秀高颜值的月饼,所...

python利用socketserver实现并发套接字功能

python利用socketserver实现并发套接字功能

本文实现利用python的socketserver这个强大的模块实现套接字的并发,具体内容如下 目录结构如下: 测试文件请放在server_file文件夹里面 server.py...

详解Golang 与python中的字符串反转

详解Golang 与python中的字符串反转 在go中,需要用rune来处理,因为涉及到中文或者一些字符ASCII编码大于255的。 func main() { fmt.Pr...

python实现监控阿里云账户余额功能

python实现监控阿里云账户余额功能

背景 由于阿里云oss,cdn消耗钱的速度比较快,在不知道的情况下,服务就被停了,影响比较大。所以想做个监控。百度一下阿里云账户余额 api 还真有;于是开启了踩坑之路。 查阅资料创建a...

pycharm创建scrapy项目教程及遇到的坑解析

pycharm创建scrapy项目教程及遇到的坑解析

前言 最近学习scrapy爬虫框架,在使用pycharm安装scrapy类库及创建scrapy项目时花费了好长的时间,遇到各种坑,根据网上的各种教程,花费了一晚上的时间,终于成功,其中也...