2016-05-25 2 views
0

Как разбить на sql строку x, в следующем фрагменте, на несколько строк - это в ноутбуке Jupyter?Многострочные струны в записной книжке Jupyter

import pandas as pd 
import pyodbc as p 

def s(sqlString): 
    cnxn = p.connect(driver='{SQL Server}', server='SERVERNAME', database='OURDBNAME', uid='myLOGIN', pwd='myPWD') 
    df = pd.read_sql(sqlString, cnxn) 
    return df 


x = "SELECT * FROM OURDBNAME.dbo.vw_DimFoo" 
df = s(x) 

(В идеале я хотел бы, чтобы не иметь дело с большим количеством конкатенации ... не уверен, если это возможно)

ответ

2

Использование круглых скобок позволит вам разделить вашу строку на несколько строк. Если вы не используете оператора, python просто будет конкретизировать.

Так быстро пример:

x = (
    'Select * ' 
    'FROM OURDBNAME.dbo.vw_DimFoo ' 
    'WHERE <foo> ' 
) 

print(x) 

печатает

Select * FROM OURDBNAME.dbo.vw_DimFoo WHERE <foo> 
+0

Спасибо @cel - это должно сделать, поскольку я получаю какую-то странную ошибку при попытке использовать ярлыки sql в jupyter: http://stackoverflow.com/questions/37433274/pyodbc-working-ok-but-not-via-sql-magic-cell – whytheq

0

Использование языка Python triple quote notation определить строку из нескольких строк:

x = """\ 
Select * 
FROM OURDBNAME.dbo.vw_DimFoo 
""" 

print(x) 

результаты в

Select * 
FROM OURDBNAME.dbo.vw_DimFoo 

(обратная косая черта «\» в начале подавляет разрыв строки. Чтобы определить однострочную строку с использованием нескольких строк, добавьте обратную косую черту после каждой строки.)

Смежные вопросы