2016-12-17 67 views
0

当我使用sqlalchemy工具包在Python中编写PostgresSQL引擎查询时,出现如下错误:'列名不存在'如何在Python中编写PostgreSQL查询而不出现大写/小写问题?

例如:

df = pd.read_sql_query('SELECT Descriptor FROM data LIMIT 3', engine) 

但具有下列修改没有错误:

df = pd.read_sql_query('SELECT \"Descriptor\" FROM data LIMIT 3', engine) 

是否有任何办法可以避免必须做到这一点的附加步骤(即,添加斜线)通过可能使用某种类型的全局设置?

+0

如果可以,请将表格重命名为小写。 – teppic

+0

如果你正在使用sqlalchemy为什么你要写这样的原始查询? – e4c5

+0

@ e4c5我的朋友,我正在关注这个[教程](https://plot.ly/python/big-data-analytics-with-pandas-and-sqlite/),因为我是一名学习SQL和sqlalchemy的新学员。你能否提出一个替代方法来编写我在第一篇文章中提到的查询的例子。谢谢。 – user121

回答

1

使用合法的小写标识符。然后,您不需要双引号来保存标识符的混合大小写拼写。

您链接到本教程是针对SQLite的,而不是Postgres的。但是,如果您没有创建带双引号的表和列来保留混合大小写拼写,那么所有标识符都可以在Postgres中运行,因为在Postgres中自动引用的标识符自动为小写。