Python pd.read\u sql\u查询单引号/双引号格式

Python pd.read\u sql\u查询单引号/双引号格式,python,sql,postgresql,pandas,quotes,Python,Sql,Postgresql,Pandas,Quotes,我正在使用PythonJupyter笔记本和Postgres数据库,正在努力填充Pandas数据帧 使用pgAdmin4中的查询生成器,sql代码运行良好,这是 SELECT "Date","Close" FROM test WHERE "Symbol" = 'AA' 然而,我无法在我的Jupyter笔记本中实现这一点,我认为这与单引号和双引号有关,但我不知道要改变什么,因此遇到了麻烦。在笔记本里,我正在努力 df = pd.read_sql_query('SELECT "Date","Clo

我正在使用PythonJupyter笔记本和Postgres数据库,正在努力填充Pandas数据帧

使用pgAdmin4中的查询生成器,sql代码运行良好,这是

SELECT "Date","Close" FROM test WHERE "Symbol" = 'AA'
然而,我无法在我的Jupyter笔记本中实现这一点,我认为这与单引号和双引号有关,但我不知道要改变什么,因此遇到了麻烦。在笔记本里,我正在努力

df = pd.read_sql_query('SELECT "Date","Close" FROM public.test WHERE "Symbol" = AA', conn)
但是不知道在查询的AA数据部分使用什么引号,如果我使用双引号,AA是一个列,如果我使用单引号,它会打断字符串

如果有人能给我指出正确的方向,我将不胜感激

谢谢

这将起作用:

df = pd.read_sql_query("SELECT Date,Close FROM public.test WHERE Symbol = 'AA'", conn)
Sql字符必须有单引号,但列名根本不需要引号

如果在sql查询中确实需要双引号,那么只需确保在python字符串上使用三个外部引号,如下所示:

df = pd.read_sql_query("""SELECT "Date" FROM public.test WHERE Symbol = 'AA'""", conn)

如果您有一个巨大的查询,可以使用三重引号,您可以在多行上声明它,如下所示:

df = pd.read_sql_query("""SELECT "Date","Close" 
                          FROM public.test 
                          WHERE Symbol = 'AA'""", conn)

@Marjan Moderc的解决方案当然也能起作用。

猜一猜:删除字段名上的引号。df=pd.read\u sql\u query'SELECT Date,Close FROM public.test WHERE Symbol=AA',conn您是否尝试将查询作为原始字符串传递?这应该可以做到:df=pd.read\u sql\u querySELECT[Date],[Close]FROM public.test WHERE Symbol='AA',conn.您需要将单引号与双引号组合起来。让我知道它是否有效。感谢大家的帮助,将列名从引号中去掉是一个很大的帮助,而且我必须将列名全部改为小写才能工作。再次感谢,没有这个网站我会迷路的。如果你对答案感到满意,请将它标记为已接受,这样将来的读者就会知道。很高兴我帮了忙。