如果您以某种方式生成了它的字符串表示形式,例如可以使用
pickle模块,则可以将数组存储在单个字符串字段中。然后,当您阅读该行时,可以对其进行拨码操作。Pickle将许多不同的复杂对象(但不是全部)转换为字符串,可以恢复该对象。但是:这很可能不是您想要做的(您无法对列表中的数据执行任何操作,除了选择行然后解开数组外,您将无法进行搜索。
如果您想拥有任何不同长度的东西(或固定长度,但是有很多类似的实例),则不希望将其放在一列或多列中。垂直而不是水平的意思是:不要关注列,而应该考虑行。对于存储具有任意数量成分的向量,表格是一个很好的工具。
从您提供的一些细节上很难解释,但是您应该考虑创建第二个表,并在第一个表的每一行中放置所有名称。您需要在第一个表中使用一些键,也可以将其用于第二个表:
c.execute("CREATE TABLE first_table(int id, varchar(255) text, additional fields)")c.execute("CREATE TABLE names_table(int id, int num, varchar(255) name)")有了这个,你还可以储存你拥有的任何信息,除了在名称
first_table和存储在名称数组
names_table,只需使用相同的
id作为
first_table和
num存储阵列内的索引位置。然后,您可以稍后通过进行类似的操作来返回数组
SELECt name FROM names_table WHERe id=?ORDER BY num
读取中任何行的名称数组
first_table。
这是将数组存储在数据库中的一种非常普通的方法。



