質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

1252閲覧

LOAD DATA INFILE構文でcsvファイルを読み込みたい

zonkota

総合スコア4

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/02/15 14:53

実現したいこと

初学者です。スクレイピングしたデータをMySQLに登録しデータベースを作ろうとしています。

現在の状況

VScodeとMySQLの接続はなんとかできましたが、
データが1万行ほどあったため、まとめて登録できる方法を探し、
LOAD DATA INFILE構文に辿り着きました。

困っていること

・データをcsvファイルで保存し直し、そのファイルを読み込もうとしたのですが、LOAD DATA INFILE構文が載っているサイトは自分で探す限り、コード全文というよりはLOAD DATA INFILE構文の部分だけが記載されており、初学者である自分にはVScodeでどのように打てばいいのかわかりませんでした。

・あるサイトで
def load_data(file_path):となっていたので
def load_data(/Users/name/Desktop/keiba/t_keiba/keiba_db_2021.csv):
とcsvファイルの場所を指定したのですがエラーとなり解消方法もわかりませんでした。

また、それだけでなく、色んなサイトから色んな情報を取り入れているうちに何を学べば良いか、何を取り入れたら良いかがわからなくなっています。コードもぐちゃぐちゃで申し訳ないですが、なんとか解消したいです。よろしくお願いします。

python

1import mysql.connector 2 3# 接続 4conn = mysql.connector.connect( 5host='localhost', 6port= '3306', 7user='root', 8password='password', 9database='keiba_db', 10 11) 12 13# 接続確認 14conn.is_connected() 15 16 17# カーソルを取得 18cur = conn.cursor() 19 20 21def load_data(/Users/name/Desktop/keiba/t_keiba/keiba_db_2021.csv): 22 with conn.cursor() as cursor: 23 sql = """ 24LOAD DATA INFILE 'keiba_db_2021.csv' 25INTO TABLE keiba_db 26CHARACTER SET utf8 27FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 28LINES TERMINATED BY '\n' 29 """.format(/Users/name/Desktop/keiba/t_keiba/keiba_db_2021.csv) 30 cursor.execute(sql) 31# コミット 32conn.commit() 33 34# DB操作が終わったらカーソルとコネクションを閉じる 35cur.close() 36conn.close()

keiba_db.csv

1#このデータが約1万行続く 2[ 3{"bamei": " □地フルゴリラ", "hiduke": "2022/02/07", "kaisai": "大井", "waku": "3", "ninnki": "2", "junni": "1", "kisyu": "岡村健司", "kyori": "ダ1600", "baba": "良", "syuboba": "エスポワールシチー"}, 4{"bamei": " □地マテラサンオウ", "hiduke": "2022/02/09", "kaisai": "高知", "waku": "7", "ninnki": "2", "junni": "4", "kisyu": "郷間勇太", "kyori": "ダ1400", "baba": "稍", "syuboba": "ルーラーシップ"}, 5{"bamei": " ○地ユウヒノプリンス", "hiduke": "2022/01/29", "kaisai": "1小倉5", "waku": "6", "ninnki": "8", "junni": "中", "kisyu": "金子光希", "kyori": "障2860", "baba": "良", "syuboba": "アイルハヴアナザー"}, 6{"bamei": " □地インペリアルエア", "hiduke": "2022/01/20", "kaisai": "姫路", "waku": "4", "ninnki": "5", "junni": "4", "kisyu": "笹田知宏", "kyori": "ダ1400", "baba": "良", "syuboba": "フレンチデピュティ"}, 7] 8

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ご提示のLOAD DATA文を見ると

sql

1INTO TABLE keiba_db

となっていますが、ここに記述するのはデータベース名ではなく、取得されたcsvをインサートするテーブルになります。
LOAD DATAされる前にデータベース「keiba_db」の中にテーブルを作成しておく必要がありますが、そちらは準備されていますでしょうか。

投稿2022/02/16 01:08

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zonkota

2022/02/16 12:11

準備できています。 SQL を実行できるツールでコマンドを流してみようと思います! 回答ありがとうございました。
guest

0

ベストアンサー

LOAD DATA INFILE構文でテキストファイルからMySQLにデータをロードする

のようなことが知りたいということでしょうか。

多くの場合は、プログラムに記載するのではなく mysql コマンドラインインターフェイス等のSQL を実行できるツールにコマンドを入力して実行します。

投稿2022/02/15 20:05

CHERRY

総合スコア25171

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問