如何将 Python 字典序列化为字符串,然后再返回字典?字典里面会有列表和其他字典。
最佳答案
这取决于你想用它做什么。如果你只是想保存它,你应该使用 pickle
(或者,如果您使用的是 CPython 2.x,cPickle
会更快)。
>>> import pickle
>>> pickle.dumps({'foo': 'bar'})
b'\x80\x03}q\x00X\x03\x00\x00\x00fooq\x01X\x03\x00\x00\x00barq\x02s.'
>>> pickle.loads(_)
{'foo': 'bar'}
如果你想让它可读,你可以使用 json
:
>>> import json
>>> json.dumps({'foo': 'bar'})
'{"foo": "bar"}'
>>> json.loads(_)
{'foo': 'bar'}
然而,json
支持的内容非常有限,而 pickle
可以用于任意对象(如果它不能自动工作,则该类可以定义 __getstate__
以精确指定它应该如何腌制)。
>>> pickle.dumps(object())
b'\x80\x03cbuiltins\nobject\nq\x00)\x81q\x01.'
>>> json.dumps(object())
Traceback (most recent call last):
...
TypeError: <object object at 0x7fa0348230c0> is not JSON serializable
关于python - 如何将 Python 字典序列化为字符串,然后再返回字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4342176/