2016-01-22 73 views

回答

2

我做到了用read_sql。下面ID代碼剪斷:

def dqm() : 
    conn_rw = create_connection() 
    dataframes = [] 
    srcfile = open('srcqueries.sql', 'rU').read() 
    querylist = srcfile.split(';') 
    querylist.pop() 
    for query in querylist : 
     dataframes.append(pd.read_sql(query, conn_rw)) 
    close_connection(conn_rw) 
    return dataframes,querylist 

您可以創建連接如下:

def create_connection(): 
     conn = pyodbc.connect("DRIVER=Teradata;DBCNAME=tddb;UID=uid;PWD=pwd;QUIETMODE=YES", autocommit=True,unicode_results=True) 
     return conn 

你可以在這裏查看完整代碼:GitHub Link 讓我知道如果這個回答您的查詢。

+0

感謝您的答案!所以你使用pyodbc而不是sqlalchemy來創建連接,對吧? – atm

+0

對。如果您打算安裝它們,我建議您使用brew包管理器。 – minatverma

1

您可以使用slqalchemy,但您也需要安裝sqlalchemy-teradata。你可以做到這一點通過PIP

pip install sqlachemy-teradata 

代碼的其餘部分保持不變:)

from sqlalchemy import create_engine 
import pandas as pd 

user, pasw, host = 'username','userpass', 'hostname' 

# connect 
td_engine = create_engine('teradata://{}:{}@{}:22/'.format(user,pasw,hostname)) 

# execute sql 
query = 'select * from dbc.usersV' 
result = td_engine.execute(query) 

#To read your query to Pandas 
df = pd.read_sql(query,td_engine)