【发布时间】:2014-08-05 22:58:49
【问题描述】:
我正在尝试保存像 ex 这样的列表。
mylist = [ 196, 107, 207, 180, etc.] 在 SQLite 的表中。该列表只是整数,我想保持列表不变。我可以这样做吗?
我尝试执行 ''' insert into table(field) value(?)''' ,(mylist)。但总是收到错误消息。
【问题讨论】:
-
哪个错误信息?显示代码!显示表定义!
我正在尝试保存像 ex 这样的列表。
mylist = [ 196, 107, 207, 180, etc.] 在 SQLite 的表中。该列表只是整数,我想保持列表不变。我可以这样做吗?
我尝试执行 ''' insert into table(field) value(?)''' ,(mylist)。但总是收到错误消息。
【问题讨论】:
您不能在表格的列中存储项目列表(在您的情况下为整数)。您可以使用不同的数据库,例如 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
这里也有更详细的答案How to store a list in a column of a database table
【讨论】:
另一种方法是使用内置 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字典。
【讨论】: