将Python列表保存到SQLite中
我想把一个列表,比如说 mylist = [196, 107, 207, 180, 等等],存到SQLite的表里。这个列表里全是整数,我想保持它原样。这样做可以吗?我试过用这个命令:''' insert into table(field) value(?)''' , (mylist)。但是总是收到错误信息。
3 个回答
1
另一种方法是使用内置的 json 模块把列表转换成一个 json 字符串。
to_dump = [1,2,3,4]
sql_as_text = json.dumps(to_dump)
(把 "sql_as_text" 变量作为文本写入你的数据库)
当你想要再次使用这些数据时,只需反向操作即可。
to_dump = json.loads(sql_as_text)
这种方法同样适用于 Python 字典。
2
你不能把一堆东西(比如整数)直接放在表格的一列里。你可以选择用其他数据库,比如MongoDB,这样你就可以存储一个“文档”,就像这样:
{'my_list': [196, 107, 207, 180, 等等]}
或者你可以设计一个不同的表结构,像下面这样有几个列(ID, list_id, list_member)。这样的话,你的每个列表成员都会有一行新的记录。如果你还有其他的列表,可以用同一个表,只需要不同的list_id就行了。
要获取你列表里的项目,可以这样写:
SELECT list_member FROM 'table_name' WHERE list_id is 1
ID list_id list_member
1 1 196
2 1 107
3 1 207
4 1 180
5 1 etc
6 2 123
7 2 etc
这里还有一个更详细的答案 如何在数据库表的一列中存储列表