def insert_or_update(cursor, table, commit=True, **field_values):
q = """<STR_LIT>""" % table<EOL>l = len(field_values)<EOL>fields = field_values.keys()<EOL>field = '<STR_LIT:U+002C>'.join(fields)<EOL>value = '<STR_LIT:U+002C>'.join(['<STR_LIT:%s>'] * l)<EOL>kv = '<STR_LIT:U+002C>'.join(['<STR_LIT>'.format(f) for f in fields])<EOL>q = q.format(field, value, kv)<EOL>args = field_values.values() * <NUM_LIT:2><EOL>cursor.execute(q, args=args)<EOL>if commit:<EOL><INDENT>cursor.connection.commit()<EOL><DEDENT>
db update 쿼리 빌딩 및 실행, 단, commit은
:param cursor: 커서
:type cursor: Cursor
:param table: 테이블이름
:type table: str
:param commit: 커밋 여부
:type commit: bool
:param field_values: insert 또는 업데이트 할 필드 및 값 dict pairs
:type field_values:dict
:return: