我有一个包含多个字段的数据库表,我正在查询并提取满足某些参数的所有数据。我使用psycopg2 for python,语法如下:
cur.execute("SELECT * FROM failed_inserts where insertid='%s' AND site_failure=True"%import_id)
failed_sites= cur.fetchall()
这将返回正确的值作为列表,并保持数据的完整性和顺序。但是我想查询在我的应用程序中的其他地方返回的列表,我只有这个值列表,即它不是字段作为这些值的键的字典。而不是必须做
desiredValue = failed_sites[13] //where 13 is an arbitrary number of the index for desiredValue
我希望能够通过字段名称进行查询,如:
desiredValue = failed_sites[fieldName] //where fieldName is the name of the field I am looking for
有一种简单的方法和有效的方法吗?
谢谢!
答案 0 :(得分:1)
cursor.description将为您提供列信息(http://www.python.org/dev/peps/pep-0249/#cursor-objects)。您可以从中获取列名并使用它们来创建字典。
cursor.execute('SELECT ...')
columns = []
for column in cursor.description:
columns.append(column[0].lower())
failed_sites = {}
for row in cursor:
for i in range(len(row)):
failed_sites[columns[i]] = row[i]
if isinstance(row[i], basestring):
failed_sites[columns[i]] = row[i].strip()
答案 1 :(得分:1)
psycopg2.extras
,{{1}}的一部分,似乎正在寻找。