2015-12-17 45 views
6

db.py kütüphanesini kullanarak veritabanı sorguları yapmak için jupyter defterini python ile kullanıyorum.Python dizgileri içinde SQL'in vurgulanması

Örneğin, (benim kod hücre içinde) gibi görünebilir: Ne istiyorum benim dize içinde SQL sözdizimi vurgulama olan

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

. Mümkün mü? Bunu nasıl inşa edeceğinize dair bir öneri de yardımcı olacaktır!

cevap

1

İstediğiniz en yakın şey IPython-SQL eklentisi (https://github.com/catherinedevlin/ipython-sql). %sql ve %%sql sihrini etkinleştirir, böylece sql kodunu string olmadan yazabilir, sonucu bir değişkene atayabilir ve daha sonra bu sonuçtan bir veri çerçevesi oluşturabilir.

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

Ve sql sorgusu beri

dize içinde, bazı vurgulama alamadım yazılır (aslında piton kodu vurgulayarak kötüye kullanılabilir durumda, ancak işler biraz daha güzel yapar).