Ich hasse die Anwendung namens Excel.
Sie können 10.000 Zeilen CSV in Excel einlesen, filtern, eine Funktion zum Kopieren ziehen und alle mühsamen Dinge erledigen. Es gibt Zeiten, in denen das Laden lange dauert und auf einem Mac nicht funktioniert. An dem Tag, an dem es einfriert, bin ich nicht motiviert und werde nicht vorzeitig aufhören.
Du wirst verrückt! !! !!
Wenn Sie ein Ingenieur sind, möchten Sie alles von der Verarbeitung / Extraktion des CSV-Imports bis zum Hochladen des FTP-Servers vom Export mit nur einem Befehl beenden! Excel ist ein böser Weg des Bösen! Eine zuverlässige Datenbank! !! !!
Der Punkt ist, wenn Sie ein Skript haben, das eine Anweisung zum Erstellen einer Tabelle aus CSV erstellt und Stapel zum Laden von Daten erstellt, dann verabschiedet sich Excel, ohne sich zu verabschieden. Ein solches Python-Skript ist das heutige Thema.
Da Python über eine Pip verfügt, die den Typ von csv mit dem Namen csv_to_table errät und eine Anweisung zum Erstellen einer Tabelle mit dem Kopfteil der ersten Zeile als Spaltennamen erstellt, haben wir ein Skript erstellt, das die Funktion zum Erstellen der Anweisung zum Laden von Daten dieses Mal hinzufügt. Ich tat.
Ich habe geschrieben, wie man es auf Github benutzt, also führe es bitte so aus, wie es ist
https://github.com/ShusukeOtani/table_stmt_generator_from_csv
gitclone
git clone https://github.com/ShusukeOtani/table_stmt_generator_from_csv
Installieren Sie pip und pyenv und führen Sie es mit python2.7.1 aus.
Abhängige Rohrinstallation
pip install -r requirements.txt
Bereiten Sie -d, -t und -p als optionale Argumente vor. -d ist eine Option zum Bestimmen des Datenbanktyps. -d m ist mysql, -d p ist postgre. Der Standardwert ist MySQL. -t ist ein Fehler, ob es sich um eine Temp-Tabelle handelt. Wenn Sie es schneiden, machen Sie es zu einem Permamenttisch.
Sie können den Primärschlüssel mit -p angeben. Wenn -p id, ist die Spalten-ID PK.
Ich werde ein Beispiel schreiben. Erstens gibt es keinen Primärschlüssel, die Permament-Tabelle, und für MySQL ist keine Option erforderlich. Geben Sie einfach den Dateipfad von CSV an.
exmaple1
python execute.py ./example/test.csv
result1
DROP TABLE IF EXISTS table_stmt_generator_from; CREATE TABLE table_stmt_generator_from (
id smallint,
pref text
);LOAD DATA LOCAL INFILE '/Users/200302/table_stmt_generator_from_csv/example/test.csv' INTO TABLE table_stmt_generator_from FIELDS TERMINATED BY ',' IGNORE 1 LINES;
Wenn Sie die ID-Spalte für postgre, temp table und pk verwenden möchten, fügen Sie die folgende Option hinzu.
example2
`python execute.py -d p -t -p id ./example/test.csv
result2
DROP TABLE IF EXISTS test; CREATE TEMPORARY TABLE test (
id smallint,
pref text
, PRIMARY KEY(id));COPY test FROM '/Users/200302/table_stmt_generator_from_csv/example/test.csv' CSV HEADER;
Einer der Werbejobs ist das Erstellen von Feeds. Wir erstellen einen optimierten Deal-List-Feed für Anbieter wie Criteo und Indeed. Sie können nicht beitreten, wenn Sie mehrere DBs anzeigen. Ich habe dieses Skript geschrieben, um dieses Problem zu lösen. Im tatsächlichen Betrieb wird dieses Skript verwendet, um eine Anwendung zu erstellen, die die folgenden Serien ausführt.
Recommended Posts