postgresql自带输出字典格式功能:
connsql = psycopg2.connect(database=dbname, user=user, password=psw, host=host, port=dbport)
cur = connsql.cursor(cursor_factory=psycopg2.extras.RealDictCursor)
在mysql中有原生提供的字典形式的游标
cursor= connect.cursor(pymysql.cursors.DictCursor)
sqlite3
docs.python.org/2/library/s…
import sqlite3
def dict_factory(cursor, row):
d = {}
for idx, col in enumerate(cursor.description):
d[col[0]] = row[idx]
return d
con = sqlite3.connect(":memory:")
con.row_factory = dict_factory
cur = con.cursor()
cur.execute("select 1 as a")
print cur.fetchone()["a"]
其它数据库可参考:sql查询结果为元组类型,将结果转换成字典类型返回
import psycopg2
def get_data(database_info,sql):
conn = psycopg2.connect(database=database_info["database"],
user=database_info["user"],
password=database_info["password"],
host=database_info["host"],
port=database_info["port"])
cur = conn.cursor()
try:
cur.execute(sql)
#获取表的所有字段名称
coloumns = [row[0] for row in cur.description]
result = [[str(item) for item in row] for row in cur.fetchall()]
return [dict(zip(coloumns, row)) for row in result]
except Exception as ex:
print(ex)
finally:
conn.close()
#数据库连接信息
database_info={
"database":"db_s",
"user":"dba",
"password":"pwd",
"host":"192.168.1.101",
"port":"5432"
}
sql="select * from tbl_tba"
data=get_data(database_info,sql)
for item in data:
print(item)
链接:blog.csdn.net/qq_32502511…
文章永久链接:https://tech.souyunku.com/42129