【发布时间】:2019-02-21 15:30:58
【问题描述】:
我对编程世界还很陌生。我正在使用 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”不存在 第 1 行:SELECT * FROM my_table Where Province =province_selec...
任何人都可以就此事提供指导吗?另外,任何人都可以告诉我如何处理postgres数据库中包含'/'等字符的字段名称。我的数据库有一个名为 CD/CSD 的字段(列标题),当我尝试在该字段上运行查询时(类似于上面的代码),我只会收到错误消息。任何帮助将不胜感激。
【问题讨论】:
标签: python postgresql pandas