多数の変数を受け取り、それらからSQLクエリを作成するPython関数があります。
def myfunc(name=None, abbr=None, grade=None, ...)
これらの値はSQLクエリを作成する必要があります。そのためには、等しい人None
はに変更する必要がありNULL
、有用な値を格納する人は'
sで囲む必要があります。
name="'"+name+"\'" if name else 'NULL'
abbr="'"+abbr+"\'" if abbr else 'NULL'
...
Lots of lines here - that's my problem!
...
そしてより、
query="""INSERT INTO table(name, abbr, ...)
VALUES (%(name)s, %(abbr)s, ...) """ locals()
cur.execute(query)
このルールに従って変数の内容を変更するためのより良い、よりPythonicな方法はありますか?
アダム