2017-01-13 3 views
0

소스 테이블의 테이블 이름을 대상 테이블에 매핑하는 파이썬 사전이 있습니다.파이썬 사전은 SQL 쿼리 문자열에 매핑합니다.

사전 :

나는 동적으로 새 열 이름 쌍을 사전에 추가 할 때 제대로 업데이트됩니다 있도록 다음과 같은 쿼리 문자열을 생성 할 필요가
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,' 

답변

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