0

これが SQL クエリを含む行です。Python が %s を文字列に置き換えようとせずに strftime('%s', 'now') を使用するにはどうすればよいですか... これは非常に面倒です。

ありがとう

DBQuery.query('INSERT INTO test (Date, Entry) VALUES (strftime(''%ss'', ''now''), "%s")' %('%', cherrypy.request.params['username']), 'INSERT')
4

1 に答える 1

1

%2つを背中合わせに使用するだけでエスケープできるので%%s、なりたい場所に文字列を入れます%s。例えば:

>>> print '''strftime('%%s', 'now'), "%s"''' % "some value"
strftime('%s', 'now'), "some value"

また、私はあなたの背中合わせの一重引用符があなたが思っていることをしているとは思いません。これにより、文字列に一重引用符が残ることはなく、2つの文字列を連結するだけです。次に例を示します。

>>> 'aaa''bbb'
'aaabbb'

代わりに、三重引用符で囲まれた文字列を使用するか、一重引用符をエスケープする必要があります。最終結果は次のようになります。

DBQuery.query('''INSERT INTO test (Date, Entry) VALUES (strftime('%%s', 'now'), "%s")''' % cherrypy.request.params['username'], 'INSERT')
于 2012-03-21T21:46:46.360 に答える