Я написал код для загрузки данных в таблицу MySQL с помощью библиотеки pymysql. Я загружаю данные в таблицу MySQL следующим образом:
import pymysql
con = pymysql.connect(host=host,user=user,password=passwd,db=db,port=int(port),autocommit=True,local_infile=1)
sql = "LOAD XML INFILE '" + path + "' INTO TABLE "+ ds_name +"."+table_name +" SET dataset="+ds_name+", factor_date="+factor_date+","+column_map+ " ROWS IDENTIFIED BY '<LoanInfo>'"
cursor.execute(sql)
cursos.commit()
ds_name и factor_date не компилируются из XML-файла, поэтому я пишу их как статические по всем строкам.
У меня есть файл CSV / excel, который содержит сопоставление между столбцами файла XML и именем столбца таблицы MySQL для более 100 столбцов. Я где-то читал, что сопоставление ссылочного столбца можно добавить в запрос SQL как «SET ABC_AGE = @ Age, UNIQUE_ID = @ID, BALANCE = @ Money». Я создаю список сопоставлений следующим образом:
ls = []
for value in zip(map_df['XML Columns'],map_df['SQL Columns']):
ls.append(value[0]+"=@"+value[1])
column_map = ",".join(ls)
Мой вопрос: есть ли лучший подход для загрузки XML-файла в MySQL с использованием python с сопоставлением?
