2024-04-25 16:39:50 发布
网友
需要读取Pylons会话数据(只读取,不写入)节点.js在
一旦我解码了base64,就剩下一个包含序列化Python对象的字符串,这是一个很难解析的问题节点.js在
我怎样才能让烧杯序列化为JSON呢?因为这比节点.js去处理。在
我不得不在烧杯里看看,你所说的“Python序列化字符串”是Python pickle。在
我不认为只需要几行代码就可以更改它,让它使用json来存储dict
以下是针对https://bitbucket.org/bbangert/beaker/src/257f147861c8的修补程序:
diff -r 257f147861c8 beaker/session.py - a/beaker/session.py Mon Apr 18 11:38:53 2011 -0400 +++ b/beaker/session.py Sat Apr 30 14:19:12 2011 -0400 @@ -489,10 +489,10 @@ nonce = b64encode(os.urandom(40))[:8] encrypt_key = crypto.generateCryptoKeys(self.encrypt_key, self.validate_key + nonce, 1) - data = util.pickle.dumps(self.copy(), 2) + data = util.json.dumps(self.copy()) return nonce + b64encode(crypto.aesEncrypt(data, encrypt_key)) else: - data = util.pickle.dumps(self.copy(), 2) + data = util.json.dumps(self.copy()) return b64encode(data) def _decrypt_data(self): @@ -504,10 +504,10 @@ self.validate_key + nonce, 1) payload = b64decode(self.cookie[self.key].value[8:]) data = crypto.aesDecrypt(payload, encrypt_key) - return util.pickle.loads(data) + return util.json.loads(data) else: data = b64decode(self.cookie[self.key].value) - return util.pickle.loads(data) + return util.json.loads(data) def save(self, accessed_only=False): """Saves the data for this session to persistent storage""" diff -r 257f147861c8 beaker/util.py - a/beaker/util.py Mon Apr 18 11:38:53 2011 -0400 +++ b/beaker/util.py Sat Apr 30 14:19:12 2011 -0400 @@ -24,6 +24,11 @@ import pickle else: import cPickle as pickle + +try: + import json +except ImportError: + import simplejson as json from beaker.converters import asbool from beaker import exceptions
我不得不在烧杯里看看,你所说的“Python序列化字符串”是Python pickle。在
我不认为只需要几行代码就可以更改它,让它使用json来存储dict
以下是针对https://bitbucket.org/bbangert/beaker/src/257f147861c8的修补程序:
相关问题 更多 >
编程相关推荐