Python

Pyshon初学者向け:CSV形式のデータをSQLite3にimportする

スポンサーリンク

 

この記事はこんな方におススメです
  • Pythonを始めたばかりで基本から学びたい方
  • Pythonの基本的な部分を速習してまずは全体像を把握しておきたい方

▶ データベースからデータを抽出する方法は以下をご覧ください

はじめに

今回はSQLiteに外部のcsv形式のファイルからデータを取り込む方法を基本から解説します。これまでテーブルの作成、レコードの作成とみてきましたが、実際には外部からデータを取り込むことが多いでしょう。基本から丁寧に解説していきます。

▶ テーブルの作成は以下の投稿をご覧ください。

csvファイルをデータベースに取り込む

今回もPythonから離れてSQLでの作業となります。まずはcsvファイルを作っておきましょう。次のようなcsvファイルを用意しました。

csvファイルの準備

このcsvファイルは「animals.csv」という名前を付けておきましょう。

書式

ファイルからテーブルにデータを読み込むには、「.import」コマンドを使用します。先の書式を確認しておきましょう。

.import ファイル名 テーブル名

.importに続けて、ファイル名、テーブル名と続けます。簡単ですね。ファイルをインポートする場合は既にテーブルがある場合と、新たなテーブルに取り込む場合とで多少異なるので、それぞれ順にみていくことにしましょう。

既存のテーブルに取り込む

前に作ったAnimalテーブルにデータを取り込むことにしましょう。

▶ テーブルの作成は以下の投稿を参考にしてください。(Animalというテーブルを作っています)

まずファイルをインポートする前に、「.mode」コマンドでcsvモードに変更しておく必要があります。そのあとに「.import」コマンドを続けます。

csvファイルのインポート:既存のテーブルに追加

何の反応もありません。これは、エラーが起きてないということなので、きっとうまくいってますね。確認しておきましょう。テーブルの中身はSELECT文でみることができましたね。

データの確認

もともとデータがあったところに追加する形でデータを取り込むことができました。ちなみにcsvはUTF-8で改行コードはLF(改行を\nで表す)で作る必要があるので注意してください。

新しいテーブルに取り込む

次にテーブルが用意されていない場合です。

これもエラーになりません。この場合はあたらしいテーブルが作られます。データを見てみましょう

csvファイルのインポート:新しいテーブルの作成

これもエラーになりません。データを見てみましょう。

データの確認

ちょっとおかしいですね。もとのcsvファイルは以下でした。

csvファイルの中身

1行目のデータが取り込まれていません。実は、csvファイルから新しいテーブルにデータを取り込む場合、インポートしたデータの最初の行がカラムとして取り込まれます。

「.header on」としてカラム名を表示させてみましょう。

カラム名を表示させてデータを確認

このように1行目のデータがカラムとして表示されていますね。インポート先のテーブルがない場合にはエラーにならずに正常終了して、1行目がカラム名として取り込まれるため注意するようにしましょう。

  • csvファイルを取り込むときにはテーブルが存在しているかを確認する
  • csvファイルはカラム名があるデータであるかを確認しておく

また、テーブルを定義するときに各カラムの型を指定していました。csvを取り込んで新規にテーブルが作られた場合はどうなるのでしょう?これも確認しておきましょう。

schemaの確認

このようにすべてのカラムがテキスト型となります。この点も注意が必要ですね。

スポンサーリンク

まとめ

今回はcsvファイルからデータベースにデータを取り込む方法をみてきました。既にテーブルが定義されている場合と、csvファイルからデータを取り込むと同時にテーブルを作成する場合とで挙動が違う点に注意が必要となるのでしたね。

コメント

タイトルとURLをコピーしました