MySQL dilengkapi fitur load CSV, tapi fitur ini susah untuk digunakan karena seringkali format data CSV tidak sesuai dengan yang diminta, ada tanda kutip, spasi, koma yang berantakan, dll. Untuk mengatasi hal ini, Python dapat membantu dengan cara memasukkan data dengan cara membaca file CSV baris per baris ke MySQL.
Penjelasan yang lebih jelas untuk menyambung Python ke MySQL dapat dilihat di sini
Ini adalah script untuk memasukkan data CSV ke MySQL dengan menggunakan teknik looping:
import mysql.connector
import csv
mydb = mysql.connector.connect(
host="host",
user="root",
password="pass",
database="data"
)
mycursor = mydb.cursor()
with open('daftar.csv', newline='') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
for val in reader :
sql = "INSERT INTO `data`.`info` (`nama`, `data`, `nilai`) VALUES (%s,%s,%s)"
mycursor.execute(sql,val)
mydb.commit()
mydb
.close()
Data CSV yang bernama daftar.csv
pada contoh memiliki format seperti ini (tanpa header):
nama1 | data1 | nilai1 |
nama2 | data2 | nilai2 |
nama3 | data3 | nilai3 |