以简单的方式在数据库中的列表对象和表名之间加入Python查询

时间:2014-01-27 08:59:53

标签: python list join

我有一个清单:

[(1,'otherfield1'),(3,'otherfield3')]

数据库中名为department_user的表:

|---ID----name-----department------manager---|
----------------------------------------------
|   1   | name1  |  department1 |  manager1  |
----------------------------------------------
|   2   | name2  |  department2 |  manager2  |
----------------------------------------------
|   3   | name3  |  department3 |  manager3  |
..............
...........

我想“左连接”列表和表格中的行以获得以下结果:

[[1, 'name1', 'dep1', 'mgr1', 'otherfield1'], [3, 'name3', 'dep3', 'mgr3', 'otherfield3']]

我知道我可以首先使用SQL查询'(....)'来获取rowcollection,然后将结果与列表结合起来构建我想要的内容。

但是,有一种简单的方法吗?

我是Python的新手,几周前发现了一个非常有用的方法:

c.executemany(''' INSERT INTO entry (id, title) VALUES(?,?);'''
                  ,[(item.id,item.title)for item in entryList]
              )

此API可以在数据库表和Python列表之间进行“插入”。所以,我认为在这样的“加入”中可能存在类似的API:

resultlist=cursor.leftjoin("select id,title from entry where ....",[(1,"author1"),(2,"author2")....])

resultlist>>>[(1,'title1','author1'),(2,'title2','author2')]

1 个答案:

答案 0 :(得分:0)

请注意,如果您正在寻找这个,但可能会有所帮助:

>>> otherfield=[(1,'otherfield1'),(3,'otherfield3')]
>>> mylist = [[1,'name1','dep1','mgr1'],[3,'name3','dep3','mgr3']]
>>> mydict = dict(otherfield)
>>> for row in mylist:
    row+=[mydict[row[0]]]


>>> mylist
[[1, 'name1', 'dep1', 'mgr1', 'otherfield1'], [3, 'name3', 'dep3', 'mgr3', 'otherfield3']]
>>>