代码之家  ›  专栏  ›  技术社区  ›  Rocketq

使用Teradata python库在pandas中选择decimal(18,6)return NaN

  •  0
  • Rocketq  · 技术社区  · 6 年前

    Evn:Python 3.6,windows 10,

    连接:

    connect = udaExec.connect(
        method="odbc",
        system='***',
        username= username,
        password= password,
        driver="Teradata Database ODBC Driver 16.10",
        dataTypeConverter=datatypes.DefaultDataTypeConverter(
                        useFloat=False) #tried setting to True - same results
    )
    
    
    
    query = 'sel top 1 MNQ from tb1'
    pd.read_sql(query, connect) #this return NaNs as result
    

    read_sql -有 coerce_float

    如何解决这个问题?链接到github issue

    1 回复  |  直到 6 年前
        1
  •  1
  •   Rocketq    6 年前

    from turbodbc import connect
    driver="Teradata Database ODBC Driver 16.10"
    connection = connect(driver=driver,
                          server=ip, 
                          DBCName='.com', 
                          uid=username,
                          pwd=password)
    
    cursor = connection.cursor()
    query = 'sel * from tb'
    cursor.execute(query)
    data = pd.DataFrame(cursor.fetchallnumpy()) #to get pandas dataframe
    data.to_csv('tb.csv')
    cursor.close()