データベースを読み書きするためのPythonコード

まえがき: 以前はデータベースの読み込みやカーソルの操作にpymysqlを使用していましたが、非常に不便に感じていました。

以下で紹介する読み書き方法では、まず 、 、 、 pip install の 3 つのパッケージをインポートする必要があるpandasためsqlalchemypymysql パッケージのインポートに問題がある場合は、私の Python 基本環境構築記事を参照してください。

1. pd.read_sql()を使用してデータを読み込みます。

read_sql(sql,con,index_col='None',coerce_float='True',params='None',parse_dates='None',columns='None',chunksize:None='None')

read_sql メソッドは、データベース内で指定された SQL ステートメント クエリを実行するか、指定されたテーブル全体をクエリし、クエリ結果を DataFrame タイプで返すために pandas で使用されます。

各パラメータの意味は次のとおりです。

sql: 実行する必要のある SQL ステートメント con: SQLalchemy や pymysql などの他のデータベース接続パッケージで構築されたデータベースへの接続に必要なエンジン index_col: インデックスとして選択する列 coerce_float: 数値文字列を float に変換し
ます
parse_dates: 特定の列を変換します 日付文字列を日時データに変換します 列: 保持する列を選択します
チャンクサイズ: 毎回出力されるデータの行数

サンプルコード:

import pandas as pd
import sqlalchemy

engine = sqlalchemy.create_engine('mysql+pymysql://root:******@192.168.0.***:3306/test')

sql='''
select * from weather_test where
create_time between '2020-09-21' and '2020-09-22'
and city in ('杭州','上海')
'''
df = pd.read_sql(sql,engine)
df

もちろん、エンジンは pymysql を使用しており、pymysql を呼び出します。Python ライブラリに含まれている必要があります。そうでない場合は、pip install してください。
この読み取りメソッドによって返される主な結果はデー​​タフレームであり、これにより後続のデータ操作が容易になります。

sqlalchemy のバージョンがそれより高いバージョン (2.0.0 など) の場合、ローカルの python3.9 はデフォルトで 2.0.16 でインストールされます。以下の記述方法を使用する必要があり、python3.6 (1.4.49) では上記の書き方です。

from sqlalchemy import create_engine, text
df = pd.read_sql(text(sql), engine.connect())

2.to_sql() 一括書き込み

to_sql() は pandas の関数で、バッチでデータベースにデータを挿入するために使用されます。これには次のパラメータが含まれます。

DataFrame.to_sql(name,con,flavour = None,schema = None,
if_exists='fail',index = True,index_label = None,chunksize = None,dtype = None)

必要なパラメータは次のとおりです。

name: 操作する必要があるテーブルの名前
con: データベースとのコネクタ
if_exists: テーブルがデータベースにすでに存在する場合、それらの操作を実行します (1. 失敗: エラーをスローして実行を中断します。 2. replace は現在のテーブルを置き換えます)表 3. 追加: 既存のテーブルにデータを挿入) デフォルトは失敗です。 インデックス
: DataFrame のインデックス列をデータの列としてデータベース テーブルに挿入するかどうか。デフォルトは True です
。index_label: インデックス列の列ラベル、デフォルトはなしです。chunksize: each 一度に挿入するデータの行数、デフォルトはNone、すべてのデータは一度にバッチで書き込まれます。dtype: 辞書形式、キーはフィールド名、値は対応するデータ形式です
。データを挿入するときに各フィールドのデータ形式を指定できます。デフォルトはなしです。

注意しなければならないことは次のとおりです。

pandas 公式 Web サイトでは、to_sql で使用されるコネクタは SQLAlchemy によって確立されたコネクタであることが望ましいと説明されており、to_sql を
使用する前に、データフレームの列名がインポートするテーブルの列名と等しいことを確認する必要があります。

サンプルコード:

import sqlalchemy 
import pandas as pd
conn =sqlalchemy.create_engine('mysql+pymysql://****:******@192.168.0.***:3306/test')
dataframe.to_sql('table_name',con=conn,index=False,if_exists='append')

おすすめ

転載: blog.csdn.net/keepandkeep/article/details/132259573
おすすめ