Générez une instruction d'insertion à partir de CSV avec Python.

Générez une instruction d'insertion à partir de CSV avec Python.

Aperçu

Un script qui prépare un CSV qui suit certaines règles et génère une instruction d'insertion à partir de celui-ci Vous pouvez voir des exemples de réalisation de choses similaires avec des feuilles Excel.

Quelles sont certaines règles?

  1. Le nom du fichier (à l'exclusion de l'extension) est le nom de la table
  2. On suppose que le csv a un en-tête et que le nom de la colonne correspond au nom de la colonne DB.

Il y a un problème, et comme il n'y a pas d'informations de type pour la table uniquement avec CSV, il n'est pas possible de juger si elle viendra avec ''. Dans cet exemple, tout est inclus une fois. En pratique, l'idée est de la remplacer par une expression régulière plus tard.

Environnement d'utilisation

Python 3.7.2 Visual Studio Code 1.39.1

Code source

CSV2insSQL.py



#Générez une instruction d'insertion à partir de CSV.
#règle
#nom de fichier(Hors extensions)Est le nom de la table
#On suppose que le csv a un en-tête et que le nom de la colonne correspond au nom de la colonne DB.
#Tâche!!Avec CSV seul, il n'y a pas d'informations de type pour la table, donc''Je ne peux pas juger si c'est gros ou pas
#Dans cet exemple, tout est inclus une fois(Pratiquement, remplacer plus tard par une expression régulière)


import csv
import os

FROM_CSV = '.\\CSV\\' + "xxx_LIST.csv"

def main():
    #Traitement du corps
    #...Génération d'insert maître
    with open(".\\CSV\\insertSQL.txt", "w", newline="",encoding="cp932") as wf:
        #Du nom de fichier au nom de table
        tablename = os.path.splitext(os.path.basename(FROM_CSV))[0]
        
        with open(FROM_CSV, encoding="cp932",) as f:
            reader = csv.DictReader(f)

            for row in reader:
                #insérer la génération d'instructions
                insert_sql = "insert into " + tablename
                fields = ",".join(reader.fieldnames)
                insert_sql =  insert_sql + "( " + fields + ") VALUES"
                valuelist = []
                for fld in reader.fieldnames:
                   #Tâche!!Avec CSV seul, il n'y a pas d'informations de type pour la table, donc''Je ne peux pas juger si c'est gros ou pas
                   #Dans cet exemple, tout est inclus une fois
                   valuelist.append("'" + row[fld] + "'")

                valustr = ",".join(valuelist)
                insert_sql =  insert_sql + "( " + valustr + ");"

                wf.write(insert_sql+"\n")


if __name__ == '__main__': main()

Recommended Posts

Générez une instruction d'insertion à partir de CSV avec Python.
Scraping depuis un site authentifié avec python
Sortie CSV de la recherche Google avec [Python]! 【Facile】
Convertir JSON en CSV avec Python de Splunk
Supprimer les en-têtes de fichiers CSV à plusieurs formats avec python
Lire csv avec des pandas python
Générer du XML (RSS) avec Python
Écrire en csv avec Python
Avec skype, notifiez avec skype de python!
Télécharger le fichier csv avec python
J'ai essayé d'envoyer un e-mail d'Amazon SES avec Python
Remarques sur l'importation de données depuis MySQL ou CSV avec Python
Tourner un tableau de chaînes avec une instruction for (Python3)
Précautions lors de la saisie à partir de CSV avec Python et de la sortie vers json pour faire exe
[Python] Qu'est-ce qu'une instruction with?
Découpez une image avec python
Appeler C depuis Python avec DragonFFI
Créer Apache Log CSV avec Python
Installez Python à partir des sources avec Ansible
Utiliser un écran connecté I2C à partir de Python
Sortie vers un fichier csv avec Python
J'ai envoyé un SMS avec Python
Gérer les fichiers Excel CSV avec Python
[Python] Générer un mot de passe avec Slackbot
Appelez python de nim avec Nimpy
Lire et écrire du CSV avec Python
Dessinez une illustration avec Python + OpenCV
Charger fbx depuis python avec cinema4d
[Python] Envoyez des e-mails avec Outlook
Essayez d'extraire une chaîne de caractères d'une image avec Python3
Extraire des tables de base de données avec CSV [connexion ODBC de R et python]
Jeu à la main Python (CSV est appliqué avec Pandas DataFrame, mais seulement la colonne complète Insérer de CSV à DB?)
Collecter des informations sur Twitter avec Python (API Twitter)
[Python] Création d'un environnement avec Anaconda [Mac]
Recevoir des données textuelles de mysql avec python
Obtenir le code HTML de l'élément avec du sélénium Python
[Python] Test super facile avec instruction assert
INSÉRER dans MySQL avec Python [Pour les débutants]
[Note] Obtenir des données de PostgreSQL avec Python
Lire un fichier audio à partir de Python avec interruption
Créez wordcloud à partir de votre tweet avec python3
[Bases de la science des données] J'ai essayé d'enregistrer de csv à mysql avec python
Lire le fichier CSV avec python (Télécharger et analyser le fichier CSV)
Générer des données de test japonais avec Python Faker
Convertir de PDF en CSV avec pdfplumber
Remarques lors de la création d'un environnement avec python
Créez rapidement un fichier Excel avec Python #python
Efficacité commerciale à partir de zéro avec Python
Manipulation d'Azure CosmosDB à partir de Python Part.2
Acquisition d'images depuis une caméra avec Python + OpenCV
Premiers pas avec Dynamo de Python boto
Lors de l'émission d'une instruction INSERT en Python, aucune colonne de ce type n'est affichée
python + faker Générer aléatoirement un point avec un rayon de 100m à partir d'un certain point
Essayez d'appeler Python depuis Ruby avec une économie
[Python] Créez rapidement une API avec Flask
Générer une classe à partir d'une chaîne en Python
[Part1] Scraping avec Python → Organisez jusqu'à csv!