如何将用户输入变量传递给Sqalchemy语句?

寒意

我对编程世界还很陌生。我正在使用Python,Pandas和SQLlite;最近我已经开始构建Postgresql数据库。我正在尝试查询一个postgres数据库,并使用结果创建一个Pandas数据框。我发现以下作品:

import pandas as pd
from sqlalchemy import create_engine # database connection
engine = create_engine('postgresql://postgres:xxxxx@localhost:xxxx/my_postgres_db')
df = pd.read_sql("SELECT * FROM my_table Where province='Saskatchewan'", engine)

工程完美,但我的问题是如何将用户输入传递给sql查询。具体来说,我想执行以下操作:

province_name = 'Saskatchewan' #user input
df = pd.read_sql("SELECT * FROM my_table Where province=province_name", engine)

但是,这将返回错误消息:ProgrammingError:(psycopg2.ProgrammingError)列“ province_selected”不存在LINE 1:SELECT * FROM my_table where Province = province_selec ...

谁能提供这件事的指导?另外,任何人都可以建议我如何处理Postgres数据库中带有'/'等字符的字段名称。我的数据库有一个称为CD / CSD的字段(列标题),当我尝试对该字段运行查询时(类似于上面的代码),我只会收到错误消息。任何帮助将不胜感激。

奎因·莫蒂默(Quinn Mortimer)

您应该使用DBAPI模块提供的功能,SQLAlchemy使用该功能将参数发送到查询。使用psycopg2可能看起来像这样:

province_name = 'Saskatchewan' #user input
df = pd.read_sql("SELECT * FROM my_table Where province=%s", engine, params=(province_name,))

这比使用Python的字符串格式将参数插入查询更安全。

使用psycopg2传递参数

pandas.read_sql 文件资料

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将用户输入的颜色传递给textcolor()?

如何将用户变量传递给路由器

如何将用户输入作为参数传递给Haskell中的SQLite LIKE子句

如何将用户输入从ASP.NET TextBox传递给JavaScript函数?

Dartlang-如何将用户输入传递给异步函数?

如何将用户定义的类型变量作为参数传递给函数?

如何将用户变量从TFS 2015构建定义传递给Power Shell脚本?

VBA如何将用户窗体变量传递给子例程

如何使用 eventdata 将用户输入传递给 jquery .click?

bash如何将用户组传递给孩子?

如何将用户传递给每个请求?

如何将用户 ID 传递给 Laravel 表单

如何将用户会话传递给REST Web服务

如何将变量传递给输入?

如何将用户输入的整数插入println语句?

无法将用户输入传递给数组

如何将输入变量传递给R Shiny中的SQL语句?

C#如何将未知值变量(用户输入)传递给返回方法

c ++如何将二维数组传递给用户输入的变量?

如何将变量传递给 exec 语句?

如何将输入变量传递给基于用户输入在许多地方调用的C ++类方法?

如何将输入变量传递给服务 Angular

如何在Java中将用户输入传递给构造函数

如何将用户定义的表类型输入参数传递给 wso2 数据服务服务器(dss)中的存储过程?

如何将用户属性传递给python函数/路由-Flask

如何将用户ID和请求数据传递给序列化器?

如何将用户数据传递给回调函数

Laravel LiveWire-如何将用户的地理坐标传递给LiveWire组件

如何将用户定义的对象参数传递给flask post方法?