python讀寫mysql


  • 讀取mysql數據

    # -*- coding: utf-8 -*-
    # 導入必要模塊
    import pandas as pd
    from sqlalchemy import create_engine
    # 初始化數據庫連接,使用pymysql模塊
    # MySQL的用戶:root, 密碼:147369, 端口:3306,數據庫:mydb
    engine = create_engine('mysql+pymysql://root:123456@localhost:3306/student')
    
    # 查詢語句,選出employee表中的所有數據
    sql = '''select * from data;'''
    # read_sql_query的兩個參數: sql語句, 數據庫連接
    df = pd.read_sql_query(sql, engine,index_col='index')
    # 輸出employee表的查詢結果
    print(df.shape)
    

      

  • pandas寫入數據庫

    # coding:utf-8
    import pandas as pd
    from sqlalchemy import create_engine
    # 初始化數據庫連接,使用pymysql模塊
    # MySQL的用戶:root, 密碼:147369, 端口:3306,數據庫:mydb
    engine = create_engine('mysql+pymysql://root:123456@localhost:3306/student')
    import datetime
    start = datetime.datetime.now().strftime('%Y-%m-%d')
    end = (datetime.datetime.now()+datetime.timedelta(days=100)).strftime('%Y-%m-%d')
    # 新建pandas中的DataFrame, 只有id,num兩列
    # df = pd.DataFrame(data=np.random.randint(-100,100,(100,100)),index=pd.date_range('2018-1-1',periods=100,dtype='datetime64[ns]', freq='D'),columns=None,dtype=int)
    # print(df.shape)
    # 將新建的DataFrame儲存為MySQL中的數據表,不儲存index列
    # df.to_sql('data', engine, if_exists='append',index= True)
    
    def write_sql(name,data=pd.DataFrame()):
        global engine
        data.to_sql(name,engine,if_exists='fail',index=True)
    

      

調用上面封裝方法:

# coding:utf-8
from mysql操作.write_SQL import write_sql
import os
import pandas as pd


path = r'your data path'

name_list = os.listdir(path)[0]

for item in [name_list]:
    name = item.split('.')[0]
    path_ = os.path.join(path,item)
    print(path_)
    with open(path_, 'rb') as f:
        data = pd.read_csv(f, sep=',', header=None, index_col=None, na_values=['NULL'], na_filter=True, encoding='utf8')
        write_sql(name,data)

print('打完收工!')

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM