pd.read_sql_query单/双引号格式

时间:2018-12-21 12:35:04

标签: python sql postgresql pandas quotes

我正在使用Python(Jupyter Notebook)和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(数据)部分使用什么引号,如果我使用双引号,pandas认为AA是一列,如果我使用单引号,它会破坏字符串。

如果有人能指出我正确的方向,我将非常感激。

谢谢

2 个答案:

答案 0 :(得分:2)

这将起作用:

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)

答案 1 :(得分:1)

如果查询很大,可以使用三引号,可以在多行中声明它:

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

@Marjan Moderc的解决方案当然也可以。