6

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

谢谢!

4

4 回答 4

17

您可以使用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来获得不错的回退。

于 2011-06-16T09:32:49.747 回答
8

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

于 2011-06-03T08:25:04.103 回答
0

使用字符串(Varchar)。来自 Python 之禅:“简单胜于复杂。”

于 2011-06-03T08:13:53.000 回答
0

sqlalchemy.types.PickleType 可以存储列表

于 2016-10-27T06:00:14.287 回答