如何在数据库中存储字典/列表?

1 投票
5 回答
2651 浏览
提问于 2025-04-15 19:34

如果我有一个里面有很多层嵌套内容的字典,我该怎么把它存储到数据库里,作为一个字符串呢?然后等我准备好解析的时候,再把它转换回字典?

补充说明:我只是想把它转换成字符串……然后再转换回字典。

5 个回答

3

你为什么不使用pickle模块来进行一些序列化和反序列化呢?

http://docs.python.org/library/pickle.html

4

选项:

1) Pickling(序列化)

2) XML(可扩展标记语言)

3) JSON(JavaScript对象表示法)

还有其他的选择,我相信有很多。这些选项的选择主要取决于你对数据可移植性的需求有多大。

2

在你提到的条件下,最好的选择是:

import cPickle
   ...
thestring = cPickle.dumps(thedict, -1)

这里的 -1 是为了确保最有效的序列化方式,它会生成一个 二进制 字符串(就是一串任意的字节)。如果你需要一个 ascii 字符串(比如说,因为要进行一些Unicode转换,而你不能把字段的类型从 TEXT 改成 BLOB),那么就要避免使用 -1,但这样效率会降低。

无论哪种情况,想要从字符串中再得到字典,

thenewdict = cPickle.loads(thestring)

撰写回答