使用python pstcopg2
我想制作一个像这样的数据框
df = sql.read_sql("""SELECT objects.sampleid, MAX(objects.projid) AS projid,
MAX(samples.t01) AS hdrfilename, MAX(samples.t06) AS ctdfilename,
MAX(objects.objdate) || ' ' || MAX(objects.objtime) AS objdatetime,
MAX(objects.latitude) AS latitude, MAX(objects.longitude) AS longitude,
MAX(objects.orig_id) AS orig_id
FROM samples, objects
WHERE objects.projid in (%s) and objects.orig_id LIKE '%samples.orig_id%'
GROUP BY objects.sampleid"""%(projid_list), mydb)
但是出现错误消息
GROUP BY objects.sampleid"""%(projid_list), mydb)
TypeError: not enough arguments for format string
我猜主要问题出在这行上,
objects.orig_id LIKE '%samples.orig_id%'
如果我将代码应用于
objects.orig_id = samples.orig_id
它可以工作,但这并不是我想要的。 我想要如果objects.orig_id包含samples.orig_id,我会得到数据。
如何更正上面的代码?
答案 0 :(得分:2)
您可以通过%
使%%
逃脱。
类似的事情应该起作用:
LIKE '%%samples.orig_id%%'