在 Pandas 和 pyodbc SQL 服务器 w/o 中使用百分比 (%) 错误

Using Percent (%) in Pandas and pyodbc SQL Server w/o Error

我认为 sql 查询中的 % 会导致 Python 出现问题,因为 %s 被用于变量。我试过转义字符,但到目前为止运气不好

import pyodbc
import pandas as pd
conn = pyodbc.connect('...')
cursor = conn.cursor()

sql_statement = """
select ABS(CHECKSUM(NEWID()) % 2), %s
"""
s = sql_statement % (5)
df = pd.read_sql_query(s, conn)
ValueError: unsupported format character ')' (0x29) at index 33

ABS(CHECKSUM(NEWID()) % 2) 应该只是 return 每行随机值的一种方法

这只是一个简单的例子。每当我尝试使用 var like '%abc% 时,我都会遇到与上述相同的问题,我相信 % 字符会导致 python 库出现问题。

有没有办法转义这些字符或避免这个问题?

通常只添加另一个“%”表示您将“%”用作字符串而不是模数。例如:

print('5%%')

打印“5%”的结果。