python pymysql链接数据库查询结果转为Dataframe实例
我就废话不多说了,大家还是直接看代码吧!
importpymysql importpandasaspd defcon_sql(db,sql): #创建连接 db=pymysql.connect(host='127.0.0.1',port=3308,user='name',passwd='password',db=db,charset='utf8') #创建游标 cursor=db.cursor() cursor.execute(sql) result=cursor.fetchall() #执行结果转化为dataframe df=pd.DataFrame(list(result)) #关闭连接 db.close() #返回dataframe returndf db='database' sql='select*fromtable' result=con_sql(db,sql) print(result.loc[2,2])#打印(3,3)位置的值)
其中,遍历dataframe元素
importpandasaspd dict=[[1,2,3,4,5,6],[2,3,4,5,6,7],[3,4,5,6,7,8],[4,5,6,7,8,9],[5,6,7,8,9,10]] data=pd.DataFrame(dict) print(data) forindexsindata.index: print(data.loc[indexs].values[0:-1])
补充知识:python使用pymssql调用存储过程并让他返回值
众所周知,pymssql库并不支持(暂时?)调用存储过程,只能使用原生的sql语句让其调用。
这样一来如果需要让pymssql调用存储过程并让其返回值,显然return语句是不能用了,
但是我们可以使用select语句让其返回值。
比如,我想查询数据是否插入成功,可以这样写
declare@oldCountint; declare@newCountint; ... if(@oldCount=@newCount) select-1; select1;
在python中,我们可以先调用存储过程[procInsert]
然后我们使用fetchone语句即可得到大概的返回值,
因为返回值的格式是(-1,)或者是(1,)这样的。
这样并不影响判断,但是强迫症肯定受不了,所以使用正则表达式提取制定的值即可.
以上这篇pythonpymysql链接数据库查询结果转为Dataframe实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。