• ベストアンサー

CSVをSqlite3にインポート。

CSVをSqlite3にインポートする際に..コマンドから行うとデータ内の改行が崩れるようです。 これはパーサーが単に改行を行末として扱っているためでしょうか。 『,』カンマに至っても同じようです。 CSVデータに『,』カンマや改行データが存在しても正しく処理が行えるアプリ等を探しております。 改行データを置き換えて潰さないものがベターで 作業環境上インストールできませんので、レジストリを汚さないアプリと言う条件です。 注文が多く申し訳ありません、ご存知の方がいましたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

pythonを使う(Python2.7.2はインストールの際に管理者権限も必要なくレジストリにも情報を書き込みません) ただし、日本語項目については明示的にdecodeしてあげる必要がある。 # -*- codding: cp932 -*- import sqlite3 import csv con = sqlite3.connect('mydb',isolation_level=None) sql = u"insert into mytable values ( ?, ? )" reader = csv.reader(open('my.csv','rb')) for row in reader:  l = ( row[0], row[1].decode('cp932'), )  con.execute(sql,l) con.close()

akaginoyama
質問者

お礼

回答ありがとうございます。 他人がつかうため制約がありPython環境使うことができません。 パスを通したりすることが必要ないコンソールアプリ等で検討しています。 ですが、回答はとても約にたちました、個人的にPythonを使ってみましたが 簡単にプログラムが書け良い感じです!!

関連するQ&A

  • sqlite3でcsvのインポートができない

    macでsqlite3でcsvのインポートができません。 in.txt -------- 1,りんご,赤色 2,みかん,黄色 ターミナル上で sqlite> .separator , sqlite> .import in.txt tbl1 といった具合にやると、改行が認識されないのか、 expected 2 columns of data but found 4 といったエラーがでます。 対処法を教えてください(><)

  • macでsqlite3でcsvのインポート

    macでsqlite3でcsvのインポートができません。 in.txt -------- 1,りんご,赤色 2,みかん,黄色 ターミナル上で sqlite> .separator , sqlite> .import in.txt tbl1 といった具合にやると、改行が認識されないのか、 expected 2 columns of data but found 4 といったエラーがでます。 対処法を教えてください(><)

  • SQLiteのテーブルデータ移行について

    SQLiteについて質問します。 よろしくお願いします。 [環境] WindowsXP pro sp3 sqlite 3.6.9 [やりたいこと] SQLiteのテーブルのデータを、別のSQLiteのデータベースに移行したい。 ただし、移行の操作はすべてコマンドプロンプト上で実行したい。 [現状] 移行したいテーブルのデータをCSV形式でアウトプット出来ています。 [困っていること] 1.移行したいテーブルのデータに改行が入っていると、インポートに失敗してしまう。 >うまくインポートできる例 1,2,"あいうえお",5,6,2011/10/21 >インポートに失敗する例 1,2,"あいう えお",5,6,2011/10/21 2.CSVの文字列データの先頭と最後尾にある「"」も一緒にインポートされてしまう。 1,2,"あいうえお",5,6,2011/10/21 このデータをインポートした場合、 1|2|あいうえお|5|6|2011/10/21 この様にインポートしたいが、 1|2|"あいうえお"|5|6|2011/10/21 この様にインポートされてしまう。

  • CSVの定義

    普通のCSVの行末にはカンマはあるものなんですか? CSVのきちんとした定義があればそれも教えてください。 エクセルは持ってないんですが、エクセルだと行末のカンマは有りますか? ファイル末の改行の有無についても教えてください。

  • SQLITEでCSVインポート方法

    SQLITEのデータベースにCSVをインポートしたいと思っています。 ローカルにCSVファイルを配置し、サーバーに取り込む事をしたいのですが、疑問が1点。 Access VBAを利用しようと思っています。下記のサイトを参考にしています。 http://billyboy.blog81.fc2.com/blog-entry-203.html# INSERTをかければ問題なくインサートする事ができました。ただ、1万件のデータを取り込む時は1万回Insertを発行することになります。 かなり時間がかかるため、良い方法がないでしょうか? 今後はPHPとかも勉強して、PHPからも同様の事がやりたいと思っています。 CSVをデータベースに高速に取り込む方法があったらお教えください。宜しくお願いします。

  • csvのインポートについて

    アウトルック2003を使っています。csv形式のデータ(カンマ区切りのアドレスをいれたもの)をアドレス帳にインポート出来たのですが、名前もいれたいと思っています。 そのアドレスのデータと新たに名前のデータをいれて対応させたいのですが、どうしたらいいでしょうか? 上記のデータをグループ化にもしたいです。 どなたか教えて下さい。

  • 【Access2010】CSVインポートについて2

    お世話になります。 現在、表題につきまして以下の質問をさせて頂いておりますが、もう一つ質問させて頂きます。 http://questionbox.jp.msn.com/qa8724865.html インポートしようとしているCSVファイルはカンマ区切りですが、その中のデータにカンマが含まれている場合がございます。 項目1  項目2  項目3 ・・・  1    あ,あ   いい  2    うう    ええ これをカンマ区切りでインポートすると、 項目1  項目2  項目3  フィールド1 ←自動的についたフィールド名  1    あ     あ    いい  2    うう    ええ となってしまいます。 これを回避する方法はございますでしょうか。 ※CSVファイルは変更したくないので、予めCSVから不要なカンマを削除しておく・・というのは無しでお願いします。 ご教授の程、宜しくお願い致します。

  • PHPの記述でSQLiteのテーブルにCSV読み

    PHPの記述で、SQLiteのテーブルにCSVをインポートする記述をご存じでしたら教えてください。 CSVは数値,文字,文字,文字という形式です。 CSVからデータを取得はできますが、テーブルに流すところが不明です。

    • ベストアンサー
    • PHP
  • heroDBに外部CSVをインポートしたいのですが

    heroDBというデータベースを利用しており、外部のCSVをインポートさせたいのですがどのようにすればいいのでしょうか? 現在heroDBというフリーのデータベースを利用し、別なサイトの会員データCSVをインポートしてデータベース更新などができればと考えています。 コンマ区切りのCSVなのですが、heroDBを利用してインポートは可能なのでしょうか? その際はどのようにすればインポートできますでしょうか? 初心者なので右も左もわからず・・・

  • エクセルにCSVを全件インポートできない

    管理サイトからダウンロードした物件管理データ(CSV)65,800件をエクセルにインポートするのに、 1回目は65,536件、2回目は別シートに「開始行50,000」に指定してインポートしたところ、50000件目から65537件目までしか取り込めず、1回目の重複除くと追加でインポートできたのは1件分のみでした。CSVデータをメモ帳で開くと、そのあとのデータも入っております。開始行を変えても結果は同じでした。ちなみにアクセスでは全件取り込めましたので、作業は継続できますが、エクセルでの作業になるため、エラー原因を抑えておきたく、ご教授のほどお願いします。 CSVデータ "物件ID","物件名","所在地","特徴コメント",・・・・・・"↑"(ここまでで1件分)"物件ID",・・・ ・↑(A~BI列)で改行されます。データは空欄もありますが、インポートしたとき空白列はありません。 ・文字数が多いセルがありそれが原因か?(特徴コメント:平均500文字)ただし、その行をスキップしても結果は同じでした。