【Python】テーブルのレコードをCSVファイルへ出力する【SQL Server】

Pythonから
 ・テーブルのレコードをCSVファイルへ出力
できます!

テーブルのレコード
テーブルのレコード

出力するCSVファイルには
 ・列名(カラム名)も出力
されます!

出力するCSVファイル
出力するCSVファイル
PR

前提

・Pythonがインストールされていること
・Pythonライブラリ「pandas」がインストールされていること
・sqlcmdが使用可能であること

PR

コード

ここでは例として
 ・SQL Server上のDB「sampleDB」にあるテーブル「employee」のレコードを
 ・CSVファイルへ出力
します。
※列名(カラム名)も出力します。

import subprocess
import pandas as pd

csvFile=r"C:\Users\user\Desktop\sample.csv"

# sqlcmd組み立て
sqlcmd = "sqlcmd -S {serverName} -d {dbName} -E -s \",\" -W -o {csvFile} -Q \"{query}\" ".format(
    csvFile=csvFile,
    serverName='localhost\SQLEXPRESS',
    dbName='sampleDB',
    userName='XXXXX',
    password='XXXXX',
    query='SET NOCOUNT ON; SELECT * FROM employee'
)

# sqlcmd実行
subprocess.run(sqlcmd, shell=True)

# CSVファイルの読み込み
df = pd.read_csv(csvFile, encoding='shift_jis')
# レコードの0行目(「--」の行)を削除
df = df.drop(0, axis=0)
# CSVファイルへ書き込み
df.to_csv(csvFile, encoding='shift_jis')

以下を指定します(8~13行目)。
※状況に合わせて適時修正してください。

・出力するCSVファイル名
・サーバー名
・DB名
・ユーザー名
・パスワード
・クエリ

「subprocess」を使用してsqlcmdを実行します(17行目)。
※「subprocess」は標準ライブラリです。よってpipによるインストールは不要です。

CSVファイルの読み込み時/書き込み時に「文字コード」を指定します(20、24行目)。
※上記では「shift_jis」を指定しています。

「レコードの0行目(「–」の行)」を削除します(22行目)。

PR

実行結果

テーブルのレコードをCSVファイルへ出力できました。

実行結果①
実行結果①
実行結果②
実行結果②
タイトルとURLをコピーしました