<p>有几个问题。在</p>
<p>首先是腌菜似乎是无效的(我认为)。不同组件之间缺少新行字符。e、 g</p>
<pre><code>import cPickle
bad_pickle = "cdatetime datetime p1 (S\'\\x07\\xdb\\x06\\x13\\x16\\x08(\\r\\xd5\\xcc\' tRp2 ."
good_pickle = '\n'.join(bad_pickle.split())
>>> cPickle.loads(bad_pickle)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
cPickle.UnpicklingError: pickle data was truncated
>>> cPickle.loads(good_pickle)
datetime.datetime(2011, 6, 19, 22, 8, 40, 906700)
</code></pre>
<p>第二个问题是您需要用另一个<code>\</code>转义来转义<code>\</code>。使用<code>replace</code>可以很容易地做到这一点,例如<code>replace('\\', '\\\\')</code></p>
<p>这段代码显示了包括pickled对象的往返JSON编码和解码:</p>
^{pr2}$
<p>请注意<code>j</code>中的反斜杠是如何被另一个反斜杠转义的。这就是来自数据库的pickle应该是什么样子。对存储在<code>j</code>中的JSON数据进行解码如下:</p>
<pre><code>d2 = json.loads(j)
cPickle.loads(d2['create_date'])
>>> d2
{'followee_id': 1411833182, 'create_date': "cdatetime\ndatetime\np1\n(S'\\x07\\xdc\\x06\\r\\x0c\\x16:\\x06/\\x85'\ntRp2\n.", 'user_email': 'bh549@sina.cn'}
>>> cPickle.loads(d2['create_date'])
datetime.datetime(2012, 6, 13, 12, 22, 58, 405381)
</code></pre>