mirror of
https://gitlab.com/cief-data/data-management.git
synced 2026-08-19 04:13:57 +00:00
46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
import json
|
|
import csv
|
|
from operator import concat
|
|
import mysql.connector
|
|
|
|
|
|
def connect_mysql(config):
|
|
try:
|
|
mydb = mysql.connector.connect(
|
|
host = config["host"],
|
|
user = config["user"],
|
|
password = config["password"],
|
|
database = config["database"])
|
|
return mydb
|
|
except Exception as e:
|
|
print(e)
|
|
print("[FUNCTION_ERROR]-connect_mysql")
|
|
return False
|
|
|
|
|
|
def mysql_dict_sql_to_csv(SQL_DICT, path, mysqldb, mysqlcursor):
|
|
|
|
for tablename,sql in SQL_DICT.items():
|
|
|
|
try:
|
|
mysqlcursor.execute(sql)
|
|
mysqlresult = mysqlcursor.fetchall()
|
|
mysqldbname = mysqldb.database
|
|
|
|
filename = '/{}_{}.csv'.format(mysqldbname, tablename)
|
|
headers = [col[0] for col in mysqlcursor.description] # get headers
|
|
mysqlresult.insert(0, tuple(headers))
|
|
fp = open(concat(path,filename), 'w', newline = '')
|
|
myFile = csv.writer(fp)
|
|
myFile.writerows(mysqlresult)
|
|
fp.close()
|
|
|
|
except Exception as e:
|
|
print(e)
|
|
print("[FUNCTION_ERROR]-write_to_csv:" , filename)
|
|
return False
|
|
|
|
finally:
|
|
print("[Download Complete]",filename)
|
|
|