首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pylons & Beaker: JSON编码会话

Pylons & Beaker: JSON编码会话
EN

Stack Overflow用户
提问于 2011-04-30 23:27:08
回答 1查看 912关注 0票数 1

需要在node.js中读取Pylons会话数据(只读,不写)

一旦我解码了base64,剩下的就是一个包含序列化的Python对象的字符串,在node.js中解析它是一件很痛苦的事情

如何让Beaker序列化到JSON?因为这对node.js来说要容易得多。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-01 02:06:51

我必须查看beaker内部,才能找到您所说的"Python序列化字符串“是python pickles。

我不认为只需要几行代码就可以更改它,让它使用json来存储字典。

这是一个针对https://bitbucket.org/bbangert/beaker/src/257f147861c8的补丁

代码语言:javascript
复制
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
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5842738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档