Maison >développement back-end >Tutoriel Python >Comment puis-je importer des fichiers CSV dans des bases de données SQLite à l'aide de Python ?

Comment puis-je importer des fichiers CSV dans des bases de données SQLite à l'aide de Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-09 08:09:021029parcourir

How can I import CSV files into SQLite databases using Python?

Importation de fichiers CSV dans des bases de données SQLite avec Python

En Python, l'utilisation du module sqlite3 permet aux développeurs d'importer sans effort données des fichiers CSV dans les tables de la base de données sqlite3. Bien que la commande « .import » puisse ne pas être directement applicable, des méthodes alternatives fournissent une approche simple pour accomplir cette tâche.

Exemple de code :

Pour illustrer le processus d'importation , considérez le code Python suivant :

import csv, sqlite3

# Connect to the database (in-memory or file) and create a cursor
con = sqlite3.connect(":memory:") # change to 'sqlite:///your_filename.db'
cur = con.cursor()
cur.execute("CREATE TABLE t (col1, col2);") # use your column names here

# Open the CSV file for reading
with open('data.csv','r') as fin:
    # Create a DictReader object to read data from the CSV file
    dr = csv.DictReader(fin) # comma is default delimiter
    # Convert CSV data into a list of tuples for database insertion
    to_db = [(i['col1'], i['col2']) for i in dr]

# Execute the insert query using executemany to efficiently import data
cur.executemany("INSERT INTO t (col1, col2) VALUES (?, ?);", to_db)

# Commit changes to the database
con.commit()

# Close the connection and cursor
con.close()

Explication :

  • Connectez-vous à la base de données SQLite à l'aide de sqlite3.connect() et créez un curseur pour exécuter requêtes.
  • Créez la table cible dans la base de données à l'aide de l'instruction CREATE TABLE.
  • Ouvrez le fichier CSV pour le lire à l'aide de l'instruction with.
  • Utilisez csv.DictReader pour lire données du fichier CSV. Il mappe automatiquement les noms de colonnes à leurs valeurs respectives.
  • Convertissez les données en une liste de tuples pour une insertion efficace dans la base de données.
  • Utilisezexecutemany pour importer plusieurs lignes simultanément.
  • Validez les modifications pour rendre les données persistantes dans la base de données.
  • Fermez la connexion et le curseur pour libérer les ressources.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn