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.

185voto

NumesSanguis Points 2169

Ce qui est également dit dans les commentaires, SQLite voit votre entrée comme 1, 25, 62, 7. J'ai également eu un problème avec , et dans mon cas, il a été résolu en changeant "separator ," en ".mode csv". Vous pouvez donc essayer :

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

La première commande crée les noms des colonnes de la table. Cependant, si vous voulez que les noms des colonnes soient hérités du fichier csv, vous pouvez simplement ignorer la première ligne.

--- Nouvelles versions de sqlite3 ---

La dernière version de sqlite3 crée la table et les colonnes pour vous si vous le laissez faire.

Vous pouvez également sauter la ligne ".mode csv" si vous ajoutez "--csv" à la fin de l'instruction d'importation comme suit :

sqlite> .import test.csv foo --csv

38voto

user1374488 Points 23

Je fusionne les informations des réponses précédentes ici avec ma propre expérience. Le plus simple est d'ajouter les en-têtes de tableau séparés par des virgules directement à votre fichier csv, suivi d'une nouvelle ligne, puis de toutes vos données csv.

Si vous ne faites plus jamais de choses avec sqlite (comme moi), cela peut vous éviter une ou deux recherches sur le web :

Dans le shell Sqlite, entrez :

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

Si vous n'avez pas installé Sqlite sur votre Mac, exécutez

$ brew install sqlite3

Vous devrez peut-être faire une recherche sur le Web pour savoir comment installer Homebrew.

34voto

gyaani_guy Points 718

Voilà comment j'ai fait.

  • Faire/Convertir le fichier csv pour qu'il soit séparé par des tabulations ( \t ) ET qui n'est pas entouré de guillemets (sqlite interprète les guillemets littéralement - selon les anciennes docs)
  • Entrez le shell sqlite de la base de données à laquelle les données doivent être ajoutées.

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

13voto

sivamani Points 297

Comment importer un fichier csv dans sqlite3 ?

  1. Créer une base de données

    sqlite3 NYC.db
  2. Définir le mode et le nom de l'onglet

    .mode csv tripdata
  3. Importer les données du fichier csv vers sqlite3

    .import yellow_tripdata_2017-01.csv tripdata
  4. Trouver des tables

    .tables
  5. Trouvez votre schéma de table

    .schema tripdata
  6. Trouver les données de la table

    select * from tripdata limit 10;
  7. Comptez le nombre de lignes dans le tableau

    select count (*) from tripdata;

9voto

zeo Points 101

Avant la commande .import, tapez ".mode csv".

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