2017-03-01 40 views
1

我收到了一堆Python字典,需要将它们组织到SQLite数据库中。这些命令使用Unix时间戳作为密钥,然后是一个值。该类型的字典目前看起来是这样的:匹配键并插入新列

{1487462400: u'385', 1481932800: u'270', 1464393600: u'213', 1459814400: u'780'} 

我可以将这些转换到一个列表或元组,只是插入键和值到一个SQLite表,但我需要做的就是再取一个新的名单是什么,匹配的Unix时间戳键,并将新值插入新列。我可以使用executemany并自动匹配密钥吗?

回答

1

假设表已经有新的专栏,写一个值,你可以使用如下语句:

UPDATE MyTable SET NewColumn = ? WHERE TimeStamp = ?; 

您可以executemany()使用这个如果参数数组有以下形式:

[('new value', 1487462400), ('hello', 1481932800), ('xxx', 1464393600), ('...', 1459814400)] 

如果你希望有时间戳第一(由mydict.items()返回),你可以指定parameter numbers

UPDATE MyTable SET NewColumn = ?2 WHERE TimeStamp = ?1; 
+0

酷!我会尝试一下,但看起来像我想要做的。不知道参数号码。伟大的东西:) –

+0

有没有办法创建一个列,如果不存在于sqlite? –

+0

这是一个不同的问题,你可以谷歌。 –