Il est essentiel de définir les données de la science des données en RDB.
Pour le moment, la série continue. Je prévois de continuer à écrire des analyses avec les données acquises à l'avenir. (des plans)
Le flux est courant car vous le mettez simplement de csv à db --db ensemble --parse csv --Connectez-vous à mysql --Hit SQL avec les données de ligne csv C'est comme ressentir. Je suis un débutant en python et j'aime généralement faire des requêtes avec des rails.
C'est généralement un mysql basique.
import csv
Mettez le module csv dans
with open('path/to/csvfile.csv') as csvfile:
reader = csv.reader(csvfile)
Dans `csvfile```,`
<open file'path / to / csvfile.csv ', mode'r' à 0x1098da030> object est entré, et `` csvfile
est dans le lecteur, respectivement. Contient un objet qui répète (itère) la ligne.
Return a reader object which will iterate over lines in the given csvfile. csvfile can be any object which supports the iterator protocol and returns a string each time its next() method is called — file objects and list objects are both suitable.
Depuis ici
Je ne voulais pas inclure l'en-tête dans le fichier csv, j'ai donc ignoré l'en-tête.
next(reader, None)
L'explication de next () est ici.
next(iterarot[, default]) Retrieve the next item from the iterator by calling its next() method. If default is given, it is returned if the iterator is exhausted, otherwise StopIteration is raised.
for row in reader:
#Mettre ligne par ligne dans db
import mysql.connector
Mettez le module dans
dbcon = mysql.connector.connect(
database=inifile.get("database", "db"),
user=inifile.get("database", "user"),
password=inifile.get("database", "password"),
host=inifile.get("database", "host")
)
dbcur = dbcon.cursor()
dbcur.execute('INSERT INTO nom de la table(nom de la colonne, nom de la colonne) VALUES(%s, "%s")' % ('v1', 'v2'))
dbcon.commit()
Entrez avec. Si vous le lisez en l'air, vous pouvez le comprendre (désolé, il était gênant de vérifier le comportement de la méthode de chaque module). On a l'impression que sql est en fait exécuté par commit. L'une des raisons est probablement qu'il est plus efficace d'appuyer sur sql à la fois lorsqu'il y a plusieurs sqls, ou lorsqu'il y a plusieurs sqls, et lorsque vous connectez plusieurs fois mysqls, puis de les connecter une fois, plutôt que de les répéter. (spéculation)
Comme ça. (Le nom de la table et la configuration sont pour mon environnement cette fois-ci, veuillez donc les changer de manière appropriée.)
import mysql.connector
import csv
import ConfigParser
inifile = ConfigParser.ConfigParser()
inifile.read("config/database.ini")
dbcon = mysql.connector.connect(
database=inifile.get("database", "db"),
user=inifile.get("database", "user"),
password=inifile.get("database", "password"),
host=inifile.get("database", "host")
)
dbcur = dbcon.cursor()
with open('RCdata/chefmozaccepts.csv') as csvfile:
reader = csv.reader(csvfile)
next(reader, None)
for row in reader:
dbcur.execute('INSERT INTO restaurants_payments_methods (restaurant_id, payment_method) VALUES(%s, "%s")' % tuple(row))
dbcon.commit()
D'autres choses que je ne savais pas sur python.
De here Différence entre tapple et list
just like lists. The differences between tuples and lists are, the tuples cannot be changed unlike lists and tuples use parentheses, whereas lists use square brackets.
Je ne connaissais pas Tapuru.
Recommended Posts