2015-12-17 24 views
6

Uso jupyter notebook con python per eseguire query di database utilizzando la libreria db.py.Evidenziazione di SQL all'interno di stringhe Python

Ad esempio, potrebbe sembrare (dentro la mia cella di codice):

df = db.query(""" 
SELECT a,b 
    FROM c 
    ORDER BY d DESC 
""") 

Quello che vorrei avere è l'evidenziazione della sintassi di SQL dentro la mia stringa. È possibile? Un suggerimento su come costruirlo sarebbe d'aiuto!

risposta

1

Sembra che la cosa più vicina a ciò che si desidera sia il plug-in IPython-SQL (https://github.com/catherinedevlin/ipython-sql). Abilita la magia %sql e %%sql in modo da poter scrivere il codice SQL senza stringhe, assegnare il risultato a una variabile e quindi creare un dataframe da questo risultato.

>>> %sql postgresql:///master 
'Connected: [email protected]' 
>>> res = %sql SELECT * FROM some_table 
731 rows affected. 
>>> df = res.DataFrame() 
>>> type(df) 
pandas.core.frame.DataFrame 

E poiché query SQL è scritto non all'interno della stringa, si ottiene qualche evidenziazione (in realtà è abusato in evidenza il codice python, ma rende le cose un po 'più bella).