如何将 Python 字典序列化为字符串,然后再序列化回字典?

2024-05-12

如何将 Python 字典序列化为字符串,然后再序列化回字典?字典中将包含列表和其他字典。


这取决于您想用它做什么。如果您只是想保存它,您应该使用pickle https://docs.python.org/3/library/pickle.html(或者,如果您使用的是 CPython 2.x,cPickle https://docs.python.org/2/library/pickle.html#module-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 https://docs.python.org/3/library/json.html:

>>> 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将 Python 字典序列化为字符串,然后再序列化回字典? 的相关文章

随机推荐