Generieren Sie mit Python eine Einfügeanweisung aus CSV.

Generieren Sie mit Python eine Einfügeanweisung aus CSV.

Überblick

Ein Skript, das eine CSV vorbereitet, die bestimmten Regeln folgt und daraus eine Einfügeanweisung generiert Sie können Beispiele für ähnliche Dinge mit Excel-Tabellen sehen.

Was sind bestimmte Regeln?

  1. Der Dateiname (ohne die Erweiterung) ist der Tabellenname
  2. Es wird angenommen, dass die CSV einen Header hat und der Spaltenname mit dem DB-Spaltennamen übereinstimmt.

Es gibt ein Problem, und da es nur mit CSV keine Typinformationen für die Tabelle gibt, kann nicht beurteilt werden, ob sie mit '' geliefert wird. In diesem Beispiel ist alles einmal eingeschlossen. In der Praxis besteht die Idee darin, es später durch einen regulären Ausdruck zu ersetzen.

Nutzungsumgebung

Python 3.7.2 Visual Studio Code 1.39.1

Quellcode

CSV2insSQL.py



#Generieren Sie eine Einfügeanweisung aus CSV.
#Regel
#Dateiname(Erweiterungen ausschließen)Ist der Tabellenname
#Es wird angenommen, dass die CSV einen Header hat und der Spaltenname mit dem DB-Spaltennamen übereinstimmt.
#Aufgabe!!CSV allein hat also keine Typinformationen für die Tabelle''Ich kann nicht beurteilen, ob es groß ist oder nicht
#In diesem Beispiel ist alles einmal eingeschlossen(Praktisch später durch einen regulären Ausdruck ersetzen)


import csv
import os

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

def main():
    #Körperbearbeitung
    #...Master Insert Generation
    with open(".\\CSV\\insertSQL.txt", "w", newline="",encoding="cp932") as wf:
        #Vom Dateinamen zum Tabellennamen
        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:
                #Anweisung generieren
                insert_sql = "insert into " + tablename
                fields = ",".join(reader.fieldnames)
                insert_sql =  insert_sql + "( " + fields + ") VALUES"
                valuelist = []
                for fld in reader.fieldnames:
                   #Aufgabe!!CSV allein hat also keine Typinformationen für die Tabelle''Ich kann nicht beurteilen, ob es groß ist oder nicht
                   #In diesem Beispiel ist alles einmal eingeschlossen
                   valuelist.append("'" + row[fld] + "'")

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

                wf.write(insert_sql+"\n")


if __name__ == '__main__': main()

Recommended Posts

Generieren Sie mit Python eine Einfügeanweisung aus CSV.
Scraping von einer authentifizierten Site mit Python
CSV-Ausgabe der Google-Suche mit [Python]! 【Einfach】
Konvertieren Sie JSON mit Python von Splunk in CSV
Entfernen Sie Überschriften aus CSV-Dateien mit mehreren Formaten mit Python
Lesen Sie CSV mit Python-Pandas
Generieren Sie XML (RSS) mit Python
Schreiben Sie mit Python in csv
Mit Skype benachrichtigen Sie mit Skype von Python!
Laden Sie die CSV-Datei mit Python herunter
Ich habe versucht, mit Python eine E-Mail von Amazon SES zu senden
Hinweise zum Importieren von Daten aus MySQL oder CSV mit Python
Drehen Sie ein Array von Zeichenfolgen mit einer for-Anweisung (Python3).
Vorsichtsmaßnahmen bei der Eingabe von CSV mit Python und der Ausgabe an json, um exe zu erstellen
[Python] Was ist eine with-Anweisung?
Schneiden Sie ein Bild mit Python aus
Rufen Sie C von Python mit DragonFFI auf
Machen Sie Apache Log CSV mit Python
Installieren Sie Python von der Quelle mit Ansible
Bedienen Sie ein mit I2C verbundenes Display über Python
Ausgabe in eine CSV-Datei mit Python
Ich habe eine SMS mit Python gesendet
Behandeln Sie Excel-CSV-Dateien mit Python
[Python] Generiere ein Passwort mit Slackbot
Rufen Sie Python von Nim mit Nimpy auf
Lesen und Schreiben von CSV mit Python
Zeichnen Sie eine Illustration mit Python + OpenCV
Laden Sie fbx aus Python mitinema4d
[Python] Mail mit Outlook senden
Versuchen Sie, mit Python3 eine Zeichenfolge aus einem Bild zu extrahieren
Datenbanktabellen mit CSV extrahieren [ODBC-Verbindung von R und Python]
Python-Handspiel (CSV wird mit Pandas DataFrame angewendet, aber nur vollständige Spalte Von CSV in DB einfügen?)
Sammeln von Informationen von Twitter mit Python (Twitter API)
[Python] Erstellen einer Umgebung mit Anaconda [Mac]
Empfangen Sie Textdaten von MySQL mit Python
Holen Sie sich HTML von Element mit Python-Selen
[Python] Super einfacher Test mit Assert-Anweisung
INSERT in MySQL mit Python [Für Anfänger]
[Hinweis] Mit Python Daten von PostgreSQL abrufen
Spielen Sie eine Audiodatei von Python mit Interrupt ab
Erstellen Sie mit python3 eine Wortwolke aus Ihrem Tweet
[Data Science-Grundlagen] Ich habe versucht, mit Python von CSV auf MySQL zu speichern
CSV-Datei mit Python lesen (CSV-Datei herunterladen und analysieren)
Generieren Sie japanische Testdaten mit Python faker
Konvertieren Sie mit pdfplumber von PDF in CSV
Hinweise beim Erstellen einer Umgebung mit Python
Erstellen Sie schnell eine Excel-Datei mit Python #python
Geschäftseffizienz von Grund auf mit Python
Bearbeiten von Azure CosmosDB aus Python Part.2
Bildaufnahme von der Kamera mit Python + OpenCV
Erste Schritte mit Dynamo von Python Boto
Bei der Ausgabe einer INSERT-Anweisung in Python wird keine solche Spalte angezeigt
python + faker Generiere zufällig einen Punkt mit einem Radius von 100 m von einem bestimmten Punkt
Versuchen Sie, Python von Ruby aus mit Sparsamkeit aufzurufen
[Python] Erstellen Sie schnell eine API mit Flask
Generieren Sie eine Klasse aus einer Zeichenfolge in Python
[Teil1] Scraping mit Python → Organisieren Sie bis zu CSV!