#python-3.x
#python-3.x
Вопрос:
Я боролся с этим в течение нескольких часов, и сейчас мне хочется плакать, так как я не могу понять, что происходит.
Вот упрощенная версия моих данных:
{ «имя»: { «0»: «ОБЕЛИСК», «1»: «РА» }, «голонган»: { «0»: 88, «1»: 99 }, «фамилия»: { «0»: «БОГ», «1»: «БОГ» }, «ник»: { «0»: 666679, «1»: 666678 }, «status_actif»: { «0»: 1, «1»: 1 }, «tgl_kerja»: { «0»: «Сб, 20 ноября 2021 года 16:28:00 по Гринвичу», «1»: «Чт, 25 ноября 2021 года 16:28:00 по Гринвичу»} }
Это код, который у меня есть :
app.route('/karyawan-import-excel') def import_excel(): # df = pd.read_csv(r'C:xampphtdocspythoncoba_read_write_exceltesting.csv') df = pd.read_excel(r'C:xampphtdocspythoncoba_read_write_exceltesting.xlsx') data = df.to_dict() cur = mysql.connection.cursor(curMysql) sql = "INSERT INTO zzz_customers (name, address) VALUES (%s, %s)" val = [ (data.get('nik'), data.get('first_name')) # ('Peter', 'Lowstreet 4'), # ('Amy', 'Apple st 652') ] cur.executemany(sql, val ) mysql.connection.commit()
Ответ №1:
Структура данных, которую вы создали, представляет data = df.to_dict()
собой вложенный словарь. Я не знаю простого способа, которым можно было бы получить такую структуру данных в таблицу MySQL.
Вместо этого вы можете внести это небольшое изменение в эту строку, как показано ниже, что даст вам список правил-более простую структуру данных для работы, с которой вы можете затем вставить в таблицу MySQL.
data = df.to_dict('records') # produces list of dicts
Затем вы можете «получить» — как вы и пытались сделать-только нужные вам значения в списке кортежей:
list_of_tuples = [ (d['nik'], d['first_name']) for d in data ] cur.executemany(sql, list_of_tuples) # ...
Это то list_of_tuples
, как должно выглядеть:
In [11]: list_of_tuples Out[11]: [(666679, 'OBELISK'), (666678, 'RA')]
Комментарии:
1. ОК. Спасибо вам за вашу помощь.