Форум сайта python.su
0
Привет всем. Нужна помощь по синтаксису.
Вытаскиваю данные из БД (firebird). Селект получается длинным. Использует join'ы, функции firebierd и т.д.
Строка нечитаема. Лишние данные импортировать не хочу.
Пытаюсь селект разбить на строки. Но что-то я делаю не так. Подскажите, плиз.
import pandas as pd import fdb FBCon =fdb.connect( dsn='localhost:DATA', user='user',password='pass',charset='WIN1251') cur = FBCon.cursor() SELECT = ("select o.PID, o.Orderid, o.eventname, datetime_utc_to_localtimestring( o.event_dt_utc), datetime_utc_to_localtimestring(o.registration_dt_utc) from Orders o join ( select first 3 distinct (PID) max3PID from Orders order by PID desc ) lastPID on o.PID = lastPID.max3PID order by o.PID, o.ID") cur.execute(SELECT) columns=pd.DataFrame(list(cur.description))[0] df = pd.DataFrame(cur.fetchall(),columns=columns) print(df.ID )
Офлайн
857
Используй тройные кавычки, либо каждую строку в кавычки бери.
>>> s1 = """ ... a ... b ... c ... """ >>> >>> s2 = ('a' ... 'b' ... 'c') >>> >>> s1 '\na\nb\nc\n' >>> >>> s2 'abc' >>>
Отредактировано py.user.next (Авг. 13, 2016 04:20:37)
Офлайн
0
Спасибо, добрый человек.
Но вот второй вариант не подходит.
fdb.fbcore.DatabaseError: ('Error while preparing SQL statement:\n- SQLCODE: -104\n- Dynamic SQL Error\n- SQL error code = -104\n- Token unknown - line 1, column 220\n- (', -104, 335544569)
А за первый спасибо огромное - без проблем отработал. Я почему-то старалась скобками проблему решить.
Офлайн
857
polinaruruНужно помнить, что там прямая склейка, без переносов.
Но вот второй вариант не подходит.
>>> s = ('a\n' ... 'b\n' ... 'c\n') >>> >>> s 'a\nb\nc\n' >>> >>> s = ('a' ... '\n' ... 'b' ... '\n' ... 'c' ... '\n') >>> >>> s 'a\nb\nc\n' >>>
Офлайн