retnuh
retnuh

Reputation: 600

The best way to store a python list to a database?

What would be the best way of storing a python list of numbers (such as [4, 7, 10, 39, 91]) to a database? I am using the Pyramid framework with SQLAlchemy to communicate to a database.

Thanks!

Upvotes: 8

Views: 19216

Answers (4)

Pegasus
Pegasus

Reputation: 1593

sqlalchemy.types.PickleType can store list

Upvotes: 1

neurino
neurino

Reputation: 12395

You can use json to save your arrays in db as 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]

also consider using cjson for better performances and anyjson for nice fallbacks.

Upvotes: 22

Michael Merickel
Michael Merickel

Reputation: 23331

Well conceptually you can store a list as a bunch of rows in a table using a one-to-many relation, or you can focus on how to store a list in a particular database backend. For example postgres can store an array in a particular cell using the sqlalchemy.dialects.postgres.ARRAY data type which can serialize a python array into a postgres array column.

Upvotes: 8

Eugene Nagorny
Eugene Nagorny

Reputation: 1666

Use string(Varchar). From Zen of Python: "Simple is better than complex."

Upvotes: 0

Related Questions