歡迎您光臨本站 註冊首頁

python pymysql鏈接數據庫查詢結果轉為Dataframe實例

←手機掃碼閱讀     niceskyabc @ 2020-06-08 , reply:0

我就廢話不多說了,大家還是直接看代碼吧!

  import pymysql  import pandas as pd  def con_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    return df    db = 'database'  sql = 'select * from table'  result = con_sql(db,sql)  print(result.loc[2,2])#打印(3,3)位置的值)

 

其中,遍歷dataframe元素

  import pandas as pd    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)  for indexs in data.index:    print(data.loc[indexs].values[0:-1])

 

補充知識:python 使用 pymssql 調用存儲過程並讓他返回值

眾所周知, pymssql 庫並不支持(暫時?)調用存儲過程,只能使用原生的sql 語句讓其調用。

這樣一來如果需要讓pymssql調用存儲過程並讓其返回值 , 顯然return語句是不能用了,

但是我們可以使用 select 語句讓其返回值。

比如,我想查詢數據是否插入成功,可以這樣寫

   declare@oldCount int ;   declare @newCount int ;   ...   if(@oldCount = @newCount)   select -1;     select1;

 

在python 中, 我們可以先調用存儲過程 [procInsert]

然後我們使用 fetchone 語句 即可得到大概的返回值,

因為返回值的格式是 (-1,) 或者是 (1,) 這樣的。

這樣並不影響判斷, 但是強迫症肯定受不了, 所以使用正則表達式提取制定的值即可.         


[niceskyabc ] python pymysql鏈接數據庫查詢結果轉為Dataframe實例已經有288次圍觀

http://coctec.com/docs/python/shhow-post-237456.html