将Python列表存储到数据库的最佳方法?

8 投票
4 回答
18481 浏览
提问于 2025-04-16 18:52

把一个Python的数字列表(比如说[4, 7, 10, 39, 91])存到数据库里,最好的方法是什么呢?我现在在用Pyramid框架和SQLAlchemy来和数据库进行沟通。

谢谢!

4 个回答

0

使用字符串(Varchar)。
来自Python的哲学:“简单比复杂好。”

22

你可以使用 json 来把你的数组保存为字符串,这样就可以存到数据库里了:

In [1]: import json

In [2]: json.dumps([1, 2, 3])
Out[2]: '[1, 2, 3]'

In [3]: json.loads(json.dumps([1, 2, 3]))
Out[3]: [1, 2, 3]

另外,考虑使用 cjson 来提高性能,使用 anyjson 则可以在出现问题时有更好的备用方案。

8

从概念上讲,你可以把一个列表存储成表格中的多行数据,这种方式叫做一对多关系。或者,你也可以考虑如何在特定的数据库中存储这个列表。比如,Postgres数据库可以在某个单元格里存储一个数组,使用的是sqlalchemy.dialects.postgres.ARRAY这种数据类型,它可以把Python中的数组转换成Postgres的数组列。

撰写回答