python中一组数查询数据库中对应的值

python中如何查询一组数在数据库中对应的其他属性。例如:我有一组编号:list=[1,2,3,4,5,6]还有个SQLserver数据库,对应表名为name.dbo.... python中如何查询一组数在数据库中对应的其他属性。
例如:
我有一组编号:
list=[1,2,3,4,5,6]
还有个SQL server数据库,对应表名为name.dbo.nlist。列名:list,Name
如何查询,list的每个值在数据库中对应的Name
我用的pyodbc连接的SQL sever。装了pandas和numpy
谢谢大神!
非常感谢您的帮助!
展开
 我来答
tim_spac
推荐于2016-11-17 · TA获得超过3628个赞
知道大有可为答主
回答量:1804
采纳率:100%
帮助的人:1996万
展开全部
我常用pymssql连接M$SQL服务器, 没用过pyodbc, 但按理应该都差不多。
若用pymssql, 从数据库中取数据的过程如下:

import pymssql

connect_setting = {
'host': '127.0.0.1',
'user': 'sa',
'password': '',
'database': 'master',
'charset': 'gb18030'
}

conn = pymssql.connect(**connect_setting)
curr = conn.cursor()
curr.execute("select list, name from nlist")
result = [(lst, name) for lst, name in curr]
curr.close()
conn.close()

关于"如何查询,list的每个值在数据库中对应的Name“
若库表中的数据像下面的样子:
id, name:
1, 'python'
2, 'perl'
3, 'c'
4, 'java'
且每行id是唯一值, 将从数据库表中拿到的数据放到一个字典中:
curr.execute("select id, name from nlist")
dd = dict([(id, name) for id, name in curr])

lst = [1,2,3,4,5,6]
用dd进行转换
[(i, dd.get(i)) for i in lst]
==>
[(1, 'python'), (2, 'perl'), (3, 'c'), (4, 'java'), (5, None), (6, None)]

or

[dd.get(i, i) for i in lst]
==>
['python', 'perl', 'c', 'java', 5, 6]
更多追问追答
追问
我现在已经将数据库中的数据拿到了一个二维矩阵中,用numpy的array做的。。怎么转成字典。。。
追答
>>> import numpy as np

>>> 
>>> aresult = np.array([[1,23], [2,53], [3,64], [4,78], [5,26], [6, 98]])
>>> aresult
array([[ 1, 23],
       [ 2, 53],
       [ 3, 64],
       [ 4, 78],
       [ 5, 26],
       [ 6, 98]])
>>> dict(aresult)
{1: 23, 2: 53, 3: 64, 4: 78, 5: 26, 6: 98}
>>>
来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式