错误索引列表中的列表以创建数据库列sqlite3 python

时间:2017-02-18 12:32:13

标签: python sqlite

这可能是我缺少的一些基本内容,但它正在努力,如果你可以提供帮助,那将非常感激。 我有一个列表,基本上是我的sqlite3数据库列:

vars= [['TRANSACTION_KEY', 'VARCHAR(28)'], ['CARD_KEY', 'VARCHAR(12)'], ['STORE_KEY', 'VARCHAR(4)'], ['PRODUCT_KEY', 'VARCHAR(18)'], ['TRX_DATE', 'VARCHAR(10)'], ['UMB', 'VARCHAR(4)'], ['TRX_TIME', 'VARCHAR(8)'], ['QUANTITY', 'REAL'], ['SPEND_AMOUNT', 'REAL'], ['EAN', 'VARCHAR(13)'], ['UMV', 'VARCHAR(4)'], ['FC', 'REAL']] <type 'list'>

我想将这些转换为字符串元组以允许与sqlite3 CREATE TABLE语句连接:

(STORE_KEY VARCHAR(4),
UMV VARCHAR(4),
EAN VARCHAR(13),
TRANSACTION_KEY VARCHAR(28),
TRX_DATE VARCHAR(10),
PRODUCT_KEY VARCHAR(18),
SPEND_AMOUNT REAL,
FC REAL,
TRX_TIME VARCHAR(8),
CARD_KEY VARCHAR(12),
UMB VARCHAR(4),
QUANTITY REAL)

这是我正在使用的代码

columns = "(" + ",\n".join("{} {}".format(i[0],i[1]) for i in vars) + ")"

但我一直得到完全相同的输出:

database columns:  [['TRANSACTION_KEY', 'VARCHAR(28)'], ['CARD_KEY', 'VARCHAR(12)'], ['STORE_KEY', 'VARCHAR(4)'], ['PRODUCT_KEY', 'VARCHAR(18)'], ['TRX_DATE', 'VARCHAR(10)'], ['UMB', 'VARCHAR(4)'], ['TRX_TIME', 'VARCHAR(8)'], ['QUANTITY', 'REAL'], ['SPEND_AMOUNT', 'REAL'], ['EAN', 'VARCHAR(13)'], ['UMV', 'VARCHAR(4)'], ['FC', 'REAL']] 

所以当我尝试索引vars列表中每个列表的个别元素时,某些内容肯定是错误的,你能帮忙吗?非常感谢!

1 个答案:

答案 0 :(得分:2)

您的代码运行正常。你试过print(columns)命令吗?

这是我得到的

enter image description here