2016-01-22 48 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)