将python列表存储到数据库的最佳方法是什么?

时间:2011-06-03 02:22:35

标签: python database sqlalchemy pyramid

将数字python列表(例如[4,7,10,39,91])存储到数据库的最佳方法是什么?我正在使用Pyramid框架和SQLAlchemy来与数据库进行通信。

谢谢!

4 个答案:

答案 0 :(得分:9)

您可以使用json将数组保存在db中作为stings:

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使用{{3}}来获得更好的回退。

答案 1 :(得分:8)

从概念上讲,您可以使用一对多关系将列表存储为表中的一堆行,或者您可以专注于如何在特定数据库后端中存储列表。例如,postgres可以使用sqlalchemy.dialects.postgres.ARRAY数据类型将数组存储在特定单元格中,该数据类型可以将python数组序列化为postgres数组列。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

sqlalchemy.types.PickleType可以存储列表