【发布时间】:2017-11-22 08:20:30
【问题描述】:
我有一个包含 >2000 个项目的整数列表,因此由于 SQL 的 2000 列限制,我无法将每个值拆分为自己的列:
a = [1, 0, 0, 1, 0,....]
还有另一个str值
version = 'dog'
我应该如何编写代码,以便可以将列表按原样输入到单个单元格中,可能是 BLOB 类型的单元格?
import sqlite3 as sql
con = sql.connect('test.db')
cur = con.cursor()
cur.execute("CREATE TABLE tablename(Version TEXT, A BLOB)")
cur.execute("CREATE INDEX Idx_Version ON tablename(Version)")
tuples = tuple([tuple(version, a)])
cur.execute('INSERT INTO tablename VALUES (?, ?)', tuples)
我对 SQL 还很陌生,如果能得到任何帮助,我将不胜感激
【问题讨论】:
-
列表中的每个值代表相同还是不同的事物?是同质的还是异质的?他们应该在表格中拥有自己的行,而不是自己的列吗?
-
它们都是
True/False、1/0、on/off类型值吗?您可能可以将其编码为 2000 位整数 -
列表始终是二进制值的列表。这里我只展示了一行,但有数千行,因此,有数千个相同长度的二进制值列表。表格的每一行都包含一个这样的列表。该列表有 2048 位
-
我想我可以从列表中创建一个包含 2048 个字符的字符串,然后改用它,@PeterWood?
-
您可以使用
bytes并将其存储为 blob。