Jas*_*all 2 python mysql wildcard python-2.7
我正在尝试运行一个MySQL查询,其中包含文本通配符,如下所示:
import sqlalchemy
import pandas as pd
#connect to mysql database
engine = sqlalchemy.create_engine('mysql://user:@localhost/db?charset=utf8')
conn = engine.connect()
#read sql into pandas dataframe
mysql_statement = """SELECT * FROM table WHERE field LIKE '%part%'; """
df = pd.read_sql(mysql_statement, con=conn)
Run Code Online (Sandbox Code Playgroud)
运行时,出现如下所示与格式相关的错误。
TypeError:格式字符串的参数不足
在使用Pandas读取MySQL时如何使用通配符?
Mub*_*har 10
from sqlalchemy import create_engine, text
import pandas as pd
mysql_statement = """SELECT * FROM table WHERE field LIKE '%part%'; """
df = pd.read_sql( text(mysql_statement), con=conn)
Run Code Online (Sandbox Code Playgroud)
您可以使用 sqlalchemy 中的 text() 函数
在pandas的内部,它使用您赋予它的任何SQL引擎来解析该语句。就您而言,这是sqlalchemy,因此您需要弄清楚它是如何处理的%
。这可能就像用逃脱一样容易LIKE '%%part%%'
。
对于psycopg,可以使用如下params
变量:
mysql_statement = """SELECT * FROM table WHERE field LIKE %s; """
df = pd.read_sql(mysql_statement, con=conn, params=("%part%",))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4316 次 |
最近记录: |