pd.read_sql_query форматирование одинарных / двойных кавычек - PullRequest
0 голосов
/ 21 декабря 2018

Я использую 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 (данных), если я использую двойные кавычки, панда думает, что AA - это столбец, и если яиспользуйте одинарные кавычки, это разрывает строку.

Я был бы очень признателен, если бы кто-то мог указать мне правильное направление.

Спасибо

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Вы можете использовать тройные кавычки, если у вас огромный запрос, вы можете объявить его в несколько строк, например:

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

Решение от @Marjan Moderc, конечно, работает.

0 голосов
/ 21 декабря 2018

Это будет работать:

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)
...