mirror of
https://gitlab.com/cief-data/data-management.git
synced 2026-08-19 04:13:57 +00:00
53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
import csv
|
|
from operator import concat
|
|
import mysql.connector
|
|
import os
|
|
|
|
|
|
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):
|
|
temp_folder_path = path
|
|
# Check whether the specified path exists or not
|
|
temp_folder_path_isExist = os.path.exists(temp_folder_path)
|
|
if not temp_folder_path_isExist:
|
|
# Create a new directory because it does not exist
|
|
os.makedirs(temp_folder_path)
|
|
print("[Create Folder] shipping_temp_extract_csv")
|
|
|
|
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 = '', encoding = 'utf-8-sig')
|
|
myFile = csv.writer(fp,delimiter='|',quotechar='"', quoting=csv.QUOTE_MINIMAL)
|
|
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)
|
|
|