Python 2.7 如何使用python中字典的值在数据库中进行查询?
例如,我有我的字典:Python 2.7 如何使用python中字典的值在数据库中进行查询?,python-2.7,sorting,dictionary,key-value,pypyodbc,Python 2.7,Sorting,Dictionary,Key Value,Pypyodbc,例如,我有我的字典:my_dict={'2':'偶数','1':'奇数','3':'奇数'}这是我的数据库: +---------+--------+ |数字|字符串| +---------+--------+ |5 | 5| |4 |四| |3 |三| |2 | 2| |1 |一| +---------+--------+ 在my_dict字典中,使用它们的键,我想在我的数据库(SQL SERVER)中获取它们的字符串值,并使用它们的值,按以下顺序对它们的字符串值进行排序: 奇偶奇数喜欢这样吗
my_dict={'2':'偶数','1':'奇数','3':'奇数'}
这是我的数据库:
+---------+--------+
|数字|字符串|
+---------+--------+
|5 | 5|
|4 |四|
|3 |三|
|2 | 2|
|1 |一|
+---------+--------+
在my_dict
字典中,使用它们的键
,我想在我的数据库(SQL SERVER)中获取它们的字符串
值,并使用它们的值
,按以下顺序对它们的字符串
值进行排序:
奇偶奇数
喜欢这样吗
一二三
然后像这样打印输出:
让我们数一二三
。实际上,我只是基于Jisoo的问题,因为我们非常相似,但我的问题是关于字典的。这个问题有两个方面:第一个是SQL查询部分。这是最简单的一个:
假设数据库表类似于
CREATE TABLE number (value INTEGER, name STRING);
SQL或多或少是简单的
from contextlib import closing
[...]
my_dict = {'2':'even','1':'odd','3':'odd'}
# database connection dbc, see python dbapi
with closing(dbc.cursor()) as cur:
cur.execute('SELECT value, name FROM number WHERE value IN (1, 2, 3)')
for value, name in cur:
print "%s is %s" % (name, my_dict[str(value)])
这里的python问题是将字典键放入子句中的SQL,因为DBAPI2参数扩展无法直接实现这一点(请参阅)
因此:
my_dict = {'2':'even','1':'odd','3':'odd'}
# database connection dbc, see python dbapi
with closing(dbc.cursor()) as cur:
stmt = 'SELECT value, name FROM number WHERE id IN (%s)' % ','.join('?' for i in my_dict))
cur.execute(stmt, my_dict.keys())
for value, name in cur:
print "%s is %s" % (name, my_dict[str(value)])
还有一个问题是,“?”
取决于所涉及数据库的参数样式。您能否详细说明预期的排序顺序?因为(“偶数”、“奇数”、“奇数”)
没有总的顺序,也就是说,按照我的阅读方式,顺序会模棱两可。哦,是的,很抱歉,我没有意识到这一点。让我们忽略序列和排序,而是使用它们的值,显示键的字符串
值,如下所示2可被2整除,1不可被2整除,3不可被2整除。那可能吗?对不起,我帮不了你。不过,在您的问题中标记pyodbc
可能会有所帮助。谢谢您的回答。我想我应该试试dbc,看看它是如何工作的。