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

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

新規登録して質問してみよう
ただいま回答率
86.12%
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による文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

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

zonkota
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による文字列操作をサポートしているため、日本語処理も標準で可能です。

2回答

0グッド

0クリップ

649閲覧

投稿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

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答2

1

ご提示のLOAD DATA文を見ると

sql

1INTO TABLE keiba_db

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

投稿2022/02/16 01:08

退会済みユーザー

退会済みユーザー

総合スコア0

zonkota👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

zonkota

2022/02/16 12:11

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

1

ベストアンサー

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

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

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

投稿2022/02/15 20:05

CHERRY

総合スコア24694

zonkota👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

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による文字列操作をサポートしているため、日本語処理も標準で可能です。