[Bases de la science des données] J'ai essayé d'enregistrer de csv à mysql avec python

Il est essentiel de définir les données de la science des données en RDB.

Au fait, ce qui précède

Pour le moment, la série continue. Je prévois de continuer à écrire des analyses avec les données acquises à l'avenir. (des plans)

Cette fois, nous mettrons les données sur csv dans la table mysql.

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.

Définir l'utilisateur ou la base de données utilisé cette fois pour mysql

C'est généralement un mysql basique.

analyser csv

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

sauter l'en-tête

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.

Regardez chaque ligne tour à tour

  for row in reader:
		#Mettre ligne par ligne dans db

Connectez-vous à mysql

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)

Tous ensemble

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()

Supplément

D'autres choses que je ne savais pas sur python.

python a un type intégré appelé taple entre ().

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

[Bases de la science des données] J'ai essayé d'enregistrer de csv à mysql avec python
J'ai essayé d'obtenir des données CloudWatch avec Python
J'ai essayé de toucher un fichier CSV avec Python
[Bases de la science des données] Collecte de données depuis RSS avec python
J'ai essayé de créer diverses "données factices" avec Python faker
Remarques sur l'importation de données depuis MySQL ou CSV avec Python
[Pandas] J'ai essayé d'analyser les données de ventes avec Python [Pour les débutants]
J'ai essayé de créer un générateur qui génère une classe conteneur C # à partir de CSV avec Python
J'ai essayé de sauvegarder les données avec discorde
J'ai essayé de sortir LLVM IR avec Python
J'ai essayé d'automatiser la fabrication des sushis avec python
J'ai essayé de créer le téléchargement CSV, le traitement des données, la fonction de téléchargement avec Django
Écrire des données CSV sur AWS-S3 avec AWS-Lambda + Python
J'ai essayé l'analyse de données IRMf avec python (Introduction au décodage des informations cérébrales)
Comment récupérer des données d'image de Flickr avec Python
J'ai essayé d'implémenter Mine Sweeper sur un terminal avec python
J'ai essayé de démarrer avec le script python de blender_Part 01
J'ai essayé de résoudre Soma Cube avec python
J'ai essayé de démarrer avec le script python de blender_Partie 02
J'ai essayé d'implémenter le perceptron artificiel avec python
J'ai essayé de collecter des données sur un site Web avec Scrapy
J'ai essayé de résoudre le problème avec Python Vol.1
J'ai essayé de résoudre la théorie des nombres entiers d'AOJ avec Python
J'ai essayé fp-growth avec python
J'ai essayé de gratter avec Python
Écrire en csv avec Python
J'ai essayé gRPC avec Python
J'ai essayé de gratter avec du python
J'ai essayé d'agréger et de comparer les données de prix unitaires par langue avec Real Gachi by Python
J'ai essayé de créer un cadre de données pandas en grattant les informations de rappel d'aliments avec Python
J'ai essayé de trouver l'entropie de l'image avec python
Je veux pouvoir analyser des données avec Python (partie 3)
J'ai essayé de simuler la propagation de l'infection avec Python
J'ai essayé d'utiliser la bibliothèque Python de Ruby avec PyCall
J'ai essayé différentes méthodes pour envoyer du courrier japonais avec Python
J'ai essayé d'envoyer un e-mail d'Amazon SES avec Python
Je veux pouvoir analyser des données avec Python (partie 1)
Je veux pouvoir analyser des données avec Python (partie 4)
Je veux pouvoir analyser des données avec Python (partie 2)
[Python] J'ai essayé de visualiser des tweets sur Corona avec WordCloud
Mayungo's Python Learning Episode 3: J'ai essayé d'imprimer des nombres
J'ai essayé de créer une interface graphique à trois yeux côte à côte avec Python et Tkinter
J'ai essayé de changer le script python de 2.7.11 à 3.6.0 sur Windows10
J'ai essayé d'obtenir rapidement des données d'AS / 400 en utilisant pypyodbc
J'ai créé une fonction pour récupérer les données de la colonne de base de données par colonne en utilisant sql avec sqlite3 de python [sqlite3, sql, pandas]
J'ai essayé de toucher Python (installation)
[Python] Ecrire dans un fichier csv avec Python
Sortie vers un fichier csv avec Python
J'ai essayé webScraping avec python.
J'ai créé un serveur avec socket Python et ssl et j'ai essayé d'y accéder depuis le navigateur
[Python / Ruby] Comprendre le code Comment obtenir des données en ligne et les écrire au format CSV
[Bases de la science des données] Acquisition de données à partir de l'API
Je veux déboguer avec Python
Examen mathématique précoce de l'Université Tohoku 2020 (sciences) J'ai essayé de résoudre les grandes questions 1 à 3 avec Python
J'ai essayé d'exécuter prolog avec python 3.8.2.
J'ai essayé la communication SMTP avec Python