文字列フォーマットで一文がとても長くなる場合
文字列フォーマットを利用していると、たまに一文がものすごく長くなる時がある。
特にDBと連携するようなとき。
何とかしたいなーということで調べてみたので、備忘録として。
作りたい文字列↓
INSERT INTO table(datetime,key,value) VALUES(to_timestamp(date,'YYYY-MM-DD'),key,value);
これを普通に文字列フォーマットで書くと↓のようになってとても長い。
sql = "INSERT INTO %s(datetime,key,value) VALUES(to_timestamp('%s','YYYY-MM-DD'),%s,%s);" % (table,date,key,value)
特にifやforの中で書く場合には更に長く感じる。
これを解消するには、文字列フォーマットにディクショナリを利用する。
sql = "INSERT INTO %(table)s(datetime,key,value) VALUES(to_timestamp('%(date)s','YYYY-MM-DD'),%(key)s,%(value)s;" values = {'table':table,'date':date,'key':key,'value':value} print sql % values
これで作りたい文字列が作成される。