Динамический запрос вставки в Python + MySQL на основе количества вставляемых столбцов - PullRequest
0 голосов
/ 09 мая 2019

Я довольно новичок в программировании (недавно изучил функции) и обнаружил, что переписываю одну и ту же функцию «вставка в таблицу mysql» (ниже) от сценария к сценарию ... главным образом, чтобы просто изменить эти два раздела - (name, insert_ts) &&& VALUES (% s,% s)

Есть ли хороший способ переписать нижеприведенное, чтобы принимать ЛЮБОЕ число значений, основанных на длине кортежа, который содержит значения, а также вставлять заголовки столбцов на основе списка «меток»? ЗНАЧЕНИЯ (% s,% s) и эта часть (имя, вставка_ts)

    list_of_tuples = [] #list of records to be inserted.

    #take a list of dictionaries - and create a list of tuples in proper format/order
    for dict1 in output:
            one_list = []
            one_list.extend((dict1['name'],dict1['insert_ts']))
            list_of_tuples.append(tuple(one_list))
    labels = ['name', 'insert_ts']


    #db_write accepts table name as str, labels as str, and output as list of tuples
    def db_write(table,labels,output):

        local_cursor.executemany(""" INSERT INTO my_table 
        (name,insert_ts)  #this is pulled from 'labels'
          VALUES (%s, %s)   #number of %s comes from len(labels)
        """
        ,  list_of_tuples)
        local_db.commit()
        local_db.close()
        #print 'done posting!'

Или, есть ли лучший способ выполнить то, что я пытаюсь сделать, используя mysqldb?

Спасибо всем заранее!

...