大家都知道,在使用pymysql时,连接mysql数据库时,我们可以让其只输出值,也可以把列名和值对应输出。
#!/bin/env python
import pymysql
mysql_config = {
'host':'localhost',
'user':'test',
'passwd':'test',
'port':3306,
'db':'test',
'charset':'utf8mb4'
}
####有key-value的方式输出
conn = pymysql.connect(**mysql_config)
cur = conn.cursor(pymysql.cursors.DictCursor)
sql = 'select * from t'
cur.execute(sql)
res = cur.fetchall()
print ()
print (res)
print ()
cur.close()
conn.close()
####只输出值
conn = pymysql.connect(**mysql_config)
cur = conn.cursor()
sql = 'select * from t'
cur.execute(sql)
res = cur.fetchall()
print ()
print (res)
print ()
cur.close()
conn.close()
输出结果如下:
pymysql的两种结果输出方式
2、见上图,通常情况下,第二种输出方式我们都会支持的。第一种输出方式未必支持,如果不支持的话,那么我们该如何实现呢?
想必大家也知道,伪代码大致思路如下:
最终的实现效果如下:
代码部分如下(以国产数据库SUNDB为例):
#!/bin/env python
import pysundb
cnxn = pysundb.connect( 'DSN=SUNDB;UID=test;PWD=test' )
sql="select * from TEST"
print ()
cursor = cnxn.cursor()
cursor.execute(sql)
rows = cursor.fetchall()
####获取列信息
des = cursor.description
print ("des: " + str(des) )
print ()
print (rows)
###把列和数据和列名一一对应
print ()
print ("*************")
resdic=[]
for i in rows:
res = dict(zip([d[0] for d in cursor.description],i))
resdic.append(res)
print (resdic)
cursor.close()
cnxn.close()
print ()
欢迎讨论~谢谢~
留言与评论(共有 0 条评论) “” |