|      1ila      2022-01-18 20:22:45 +08:00 via Android  1 用 f format, f"{condi1}"。 先 print 出来看组装后的字符串 | 
|  |      2youthfire OP 自己发现了两处问题 1.改用 code = 时,后面%就不需要了,因为只有在 like 时有效 2.安全角度和便捷角度,应该使用参数写法 但换了种表达方式,似乎也不见效 df = pd.DataFrame(pd.read_sql("select * from f63 where code = ? OR code = ? AND engine like '%?%'", (str(code), str(code2), str(keystring2))), conn) | 
|  |      3youthfire OP 解决了 df = pd.DataFrame(pd.read_sql("select * from f63 where code = ? OR code = ? AND engine like ?", conn, params=[str(code), str(code2), '%' + str(keystring2) + '%'])) | 
|      4dayeye2006199      2022-01-19 01:43:47 +08:00  1 虽然这边是用在 pandas 里面,但是拼装 sql 语句不是好习惯。 | 
|  |      5RRRoger      2022-01-19 10:15:42 +08:00  1 用 py3 的 f"....."  或者 "...".format() 都比你这个+清晰 |