在 Pandas 中使用 SQL 'like' 和 input()
Use SQL 'like' in Pandas with input()
所以我使用下面的代码从 SQL 服务器中的某个 table SELECT 列。
sus_base = pd.read_sql_query("SELECT screen_name, user_id, text FROM [dbo].[TABLE_ONE]", con)
df1 = pd.read_sql_query("SELECT screen_name, user_id, text FROM [dbo].[TABLE_ONE] WHERE text like '%car%'", con)
df2= pd.read_sql_query("SELECT screen_name, user_id, text FROM [dbo].[TABLE_ONE] WHERE text like '%plane%'", con)
df3= pd.read_sql_query("SELECT screen_name, user_id, text FROM [dbo].[TABLE_ONE] WHERE text like '%quality%'", con)
但是,我必须对很多字符串进行匹配。我在 Python 中尝试了以下方法,但没有用:
test = pd.read_sql_query(("SELECT screen_name, user_id, text FROM [dbo].[TABLE_ONE] WHERE text like '%s%'", input()), con)
在询问我输入后,它给了我以下错误:
DatabaseError: Execution failed on sql '("SELECT screen_name, user_id, text FROM [dbo].[TABLE_ONE] WHERE text like '%s%'", "'car'")': bytes or integer address expected instead of tuple instance.
是的,我也尝试过不在 car 周围加上 '' 引号。
df1 看起来像:
JAN | 20938 | Hi I am looking for a car somewhere
BOB | 38470 | Guys, where is my plane?
ELSA| 49850 | Never know what to do next..
CARL| 08923 | The quality of this product is amazing!
ETC.
你可以想象创建它需要大量的工作。因此,如果最终用户可以只在文本字符串中输入他正在寻找的单词,并且它会 return 这些文本就像我在上面的示例中输入它们时那样,那就太好了。然后我会确保它进入数据框 and/or Excel 文件。
输入未被翻译成 pandas 发送查询所需的文本。在行中:
pd.read_sql_query(("SELECT ... WHERE text like '%s%'", input()), con)
实际喂的是pd.read_sql_query((str, str), con)
。换句话说,您发送了一个 2 元组字符串和连接对象,它只需要一个字符串和连接对象。尝试格式化字符串:
pd.read_sql_query("SELECT ... WHERE text like %{}%".format(input()), con)
所以我使用下面的代码从 SQL 服务器中的某个 table SELECT 列。
sus_base = pd.read_sql_query("SELECT screen_name, user_id, text FROM [dbo].[TABLE_ONE]", con)
df1 = pd.read_sql_query("SELECT screen_name, user_id, text FROM [dbo].[TABLE_ONE] WHERE text like '%car%'", con)
df2= pd.read_sql_query("SELECT screen_name, user_id, text FROM [dbo].[TABLE_ONE] WHERE text like '%plane%'", con)
df3= pd.read_sql_query("SELECT screen_name, user_id, text FROM [dbo].[TABLE_ONE] WHERE text like '%quality%'", con)
但是,我必须对很多字符串进行匹配。我在 Python 中尝试了以下方法,但没有用:
test = pd.read_sql_query(("SELECT screen_name, user_id, text FROM [dbo].[TABLE_ONE] WHERE text like '%s%'", input()), con)
在询问我输入后,它给了我以下错误:
DatabaseError: Execution failed on sql '("SELECT screen_name, user_id, text FROM [dbo].[TABLE_ONE] WHERE text like '%s%'", "'car'")': bytes or integer address expected instead of tuple instance.
是的,我也尝试过不在 car 周围加上 '' 引号。
df1 看起来像:
JAN | 20938 | Hi I am looking for a car somewhere
BOB | 38470 | Guys, where is my plane?
ELSA| 49850 | Never know what to do next..
CARL| 08923 | The quality of this product is amazing!
ETC.
你可以想象创建它需要大量的工作。因此,如果最终用户可以只在文本字符串中输入他正在寻找的单词,并且它会 return 这些文本就像我在上面的示例中输入它们时那样,那就太好了。然后我会确保它进入数据框 and/or Excel 文件。
输入未被翻译成 pandas 发送查询所需的文本。在行中:
pd.read_sql_query(("SELECT ... WHERE text like '%s%'", input()), con)
实际喂的是pd.read_sql_query((str, str), con)
。换句话说,您发送了一个 2 元组字符串和连接对象,它只需要一个字符串和连接对象。尝试格式化字符串:
pd.read_sql_query("SELECT ... WHERE text like %{}%".format(input()), con)