Подтвердить что ты не робот

Импорт CSV в SQLite

Я пытаюсь импортировать файл csv в таблицу SQLite.

Пример csv:

1,2
5,6
2,7

Пример команды:

sqlite> create table foo(a, b);
sqlite> separator ,
sqlite> .import test.csv foo
Error: test.csv line 1: expected 2 columns of data but found 4

Я даже не уверен, почему он найдет четыре столбца с шестью частями данных и двумя столбцами. Любая помощь?:)

4b9b3361

Ответ 1

Что также говорится в комментариях, SQLite рассматривает ваш ввод как 1, 25, 62, 7. У меня также была проблема, и в моем случае она была решена путем замены "разделителя" на ".mode csv". Так что вы можете попробовать:

sqlite> create table foo(a, b);
sqlite> .mode csv
sqlite> .import test.csv foo

Первая команда создает имена столбцов для таблицы. Однако, если вы хотите, чтобы имена столбцов унаследовали от файла CSV, вы можете просто проигнорировать первую строку.

Ответ 2

Вот как я это сделал.

  • Сделать/преобразовать файл csv, который будет разделен вкладками (\ t) И не заключен в кавычки (sqlite интерпретирует кавычки буквально - говорит старые документы)
  • Введите оболочку sqlite db, к которой необходимо добавить данные.

    sqlite> .separator "\t" ---IMPORTANT! should be in double quotes sqlite> .import afile.csv tablename-to-import-to

Ответ 3

Я собираю информацию из предыдущих ответов здесь с моим собственным опытом. Самый простой способ - добавить заголовки таблиц, разделенные запятыми, непосредственно в ваш файл csv, а затем новую строку, а затем все ваши данные csv.

Если вы никогда не будете делать sqlite вещи снова (как я), это может спасти вас веб-поиск или два:

В оболочке Sqlite введите:

$ sqlite3 yourfile.sqlite
sqlite>  .mode csv
sqlite>  .import test.csv yourtable
sqlite>  .exit

Если у вас нет Sqlite, установленного на вашем Mac, запустите

$ brew install sqlite3

Возможно, вам понадобится сделать один веб-поиск, как установить Homebrew.

Ответ 4

перед командой .import введите ".mode csv"

Ответ 5

У меня была точно такая же проблема (в OS X Maverics 10.9.1 с SQLite3 3.7.13, но я не думаю, что SQLite связан с причиной). Я попытался импортировать данные csv, сохраненные из MS Excel 2011, что кстати. использует ';' как разделитель столбцов. Я узнал, что csv файл из Excel по-прежнему использует символ новой строки из Mac OS 9 раз, заменив его на unix-newline, решив проблему. AFAIR BBEdit имеет команду для этого, а также Sublime Text 2.

Ответ 6

TERMSQL

С termql вы можете сделать это в одной строке:

termsql -i mycsvfile.CSV -d ',' -c 'a,b' -t 'foo' -o mynewdatabase.db

Ответ 7

Как импортировать CSV файл в sqlite3

  1. Создать базу данных

    sqlite3 NYC.db
    
  2. Установите режим и имя таблицы

    .mode csv tripdata
    
  3. Импортируйте данные файла csv в sqlite3

    .import yellow_tripdata_2017-01.csv tripdata
    
  4. Найти таблицы

    tables
    
  5. Найдите схему таблицы

    .schema tripdata
    
  6. Найти данные таблицы

    select * from tripdata limit 10;
    
  7. Подсчитайте данные вашей таблицы

    select count (*) from tripdata;