Карта словаря Python в строку запроса SQL

У меня есть словарь Python, который отображает имена столбцов из исходной таблицы в целевую таблицу.

Словарь:

tablemap_computer = {
    'ComputerID' : 'computer_id',
    'HostName' : 'host_name',
    'Number' : 'number'
}

Мне нужно динамически создать следующую строку запроса, чтобы она правильно обновлялась при добавлении новых пар имен столбцов в словарь.

ComputerID=%(computer_id)s, HostName=%(host_name), Number=%(number)s

Как это сделать?

У меня есть начало, но это очень беспорядочно и имеет лишнюю запятую в конце последнего элемента.

queryStrInsert = ''
for tm_key, tm_val in tablemap_computer.items():
    queryStrInsert += tm_key+'=%('+tm_val+')s,'

person pengz    schedule 13.01.2017    source источник


Ответы (1)


Возможно, вы захотите попробовать использовать join и понимание списка.

query = ', '.join([key + '=%(' + value + ')s' for key, value in tablemap_computer.items()])

Используя словарь, который вы привели в качестве примера, можно получить следующую строку:

HostName=%(host_name)s, Number=%(number)s, ComputerID=%(computer_id)s
person Niebieski    schedule 13.01.2017