6

を使用してcsvファイルをSQLite dbにインポートしたい

sqlite> .separator ,
sqlite> .mode csv data
sqlite> .import test.csv data

wheredataは、ファイルと同様に、3 つの列を持つテーブル名です。

ファイルには、二重引用符を使用してカプセル化された文字列値が含まれています。一部の文字列値にはカンマが含まれています (ファイルの実際の例"Bond\, James")。これは単一の列として扱われるべきですが、SQLite はエラーを生成します。

Error: test.csv line 2: expected 3 columns of data but found 4

SQLite にこれらの値を正しくインポートさせるにはどうすればよいですか?

4

3 に答える 3

3

これは少し古いことは知っていますが、これは関連する最初の Google 検索結果だったので、解決策を共有したいと思いました。

別のセパレータを使用し、値を囲む引用符を削除してください。

sed -i -e 's/","/|/g' -e 's/"$//g' -e 's/^"//g' file.csv

sqlite> .separator "|"
sqlite> .import file.csv tablename
于 2014-09-25T16:52:20.883 に答える
-1

私はこの問題を自分で経験しており、csv で区切られた値ではなく、SQL クエリをダンプするようにスクリプトを変更する方がはるかに簡単であることがわかりました。

カンマだけでなく、改行文字を使用して csv データを sqlite3 にインポートする際にも問題があります。

次のことをお勧めします。

  • スクリプトを変更して SQL ダンプを生成する
  • csv ダンプを sql クエリに変換し、それを sqlite3 にフィードします
于 2016-05-24T23:49:33.427 に答える