145 votes

Importer CSV vers SQLite

J'essaie d'importer un fichier csv dans une table SQLite.

Exemple csv :

1,2
5,6
2,7

Exemple de commande :

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

Je ne sais même pas pourquoi il trouverait quatre colonnes avec six données et deux colonnes.

4voto

user3573558 Points 26

Con Termes et conditions vous pouvez le faire en une seule ligne :

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

3voto

adass Points 164

J'ai eu exactement le même problème (sur OS X Maverics 10.9.1 avec SQLite3 3.7.13, mais je ne pense pas que SQLite soit lié à la cause). J'ai essayé d'importer des données csv sauvegardées à partir de MS Excel 2011, qui utilise d'ailleurs ';' comme séparateur de colonnes. J'ai découvert que le fichier csv d'Excel utilise toujours le caractère newline de l'époque de Mac OS 9, le changer en newline unix a résolu le problème. AFAIR BBEdit a une commande pour cela, ainsi que Sublime Text 2.

1voto

Dupinder Singh Points 1325

Comme certains sites Web et d'autres articles précise, son simple ont un regard à celui-ci. https://www.sqlitetutorial.net/sqlite-import-csv/

Nous n'avons pas besoin de spécifier le séparateur pour les éléments suivants csv parce que csv signifie "comma separated".

sqlite> .separator , pas besoin de cette ligne.

sqlite> create table cities(name, population);
sqlite> .mode csv
sqlite> .import c:/sqlite/city_no_header.csv cities

Cela fonctionnera parfaitement :)

PS : Mes villes.csv avec l'en-tête.

name,population
Abilene,115930
Akron,217074
Albany,93994
Albuquerque,448607
Alexandria,128283
Allentown,106632
Amarillo,173627
Anaheim,328014

1voto

Dans mon cas, j'ai dû voir le fichier que j'essayais d'ajouter, il avait des en-têtes et le séparateur était un point-virgule. ; .

J'ai essayé en premier :

.mode csv
.import myfile.csv mytable

Mais ça n'a pas marché, alors j'ai essayé :

.separator ";"
.import myfile.csv mytable

Et cela a fonctionné, j'ai donc dû régler le séparateur manuellement.

0voto

Lalit Bangad Points 189

Suivez les étapes:-

1] Nom de sqlite3

2] .mode csv nom du tableau

3] .import Nom-de-fichier.csv tablename

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X