dict中的多键(复合索引)搜索

时间:2017-08-14 18:48:19

标签: python

我有一个包含这样的复合索引的数据库表:

create table Table1
(
key1 int,
key2 int,
value1 int,
value2 char(10),
primary key(key1 , key2)
)

我必须从这个表创建一个dict(使用pyodbc,但选择不是问题)。 我的问题是:如何定义一个多键dict并在搜索其中的数据之后。

我想在字典搜索中实现这种SQL语法:

select * from Table1 where key1  = 10 and key2 = 20

搜索的伪代码是:

myvalue = ['A', 'B']
if myvalue in mydict[key1, key2]:
    print ('OK')

但这显然是错误的。 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

dict必须具有不可变类型作为键。最简单的结构是两个数据库关键字段的tuple。因此,您可以使用:

mydict[(key1, key2)]

它应该有用。