提问人:user2908926 提问时间:12/21/2018 最后编辑:Marjan Modercuser2908926 更新时间:12/21/2018 访问量:6049
pd.read_sql_query 单引号/双引号格式
pd.read_sql_query single / double quotes formatting
问:
我正在使用 Python(Jupyter Notebook) 和 Postgres 数据库,并且正在努力填充 Pandas 数据帧。
sql 代码使用 pgAdmin4 中的查询构建器运行良好,这是
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赞
Marjan Moderc
12/21/2018
#1
这将起作用:
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)
评论
0赞
user2908926
12/21/2018
感谢大家的帮助,将列名从引号中取出是一个很大的帮助,而且我必须将列名更改为全部小写才能使其正常工作。再次感谢,如果没有这个网站,我会迷路的
0赞
Marjan Moderc
12/21/2018
如果您对答案感到满意,请将其标记为已接受,以便未来的读者知道。很高兴我帮了忙。
2赞
Clem G.
12/21/2018
#2
如果你有一个巨大的查询,你可以使用三引号,你可以在多行中声明它,如下所示:
df = pd.read_sql_query("""SELECT "Date","Close"
FROM public.test
WHERE Symbol = 'AA'""", conn)
当然,@Marjan Moderc 的解决方案也有效。
评论
df = pd.read_sql_query('SELECT Date, Close FROM public.test WHERE Symbol = AA', conn)
raw string