2017-01-13 6 views
0

У меня есть словарь python, который сопоставляет имена столбцов из исходной таблицы в таблицу назначения.Python словарь map to SQL query string

Словарь:

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

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

Что такое хороший способ сделать это?

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

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

ответ

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