首页 > 解决方案 > Teradata - Pandas TypeError:“NoneType”对象不可迭代

问题描述

我正在尝试运行以下代码以使用 teradata python 库创建 Teradata 表:

import teradata
import pandas as pd

udaExec = teradata.UdaExec (appName="Hello", version="1.0",
    logConsole=False)
session = udaExec.connect(method="odbc", system="tdprod",
    username="xxx", password="xxx");

sqlStr = "CREATE SET TABLE \"TEST123\" \
(col1 INTEGER) PRIMARY INDEX (col1);"

result = pd.read_sql(sqlStr, self.session)

我收到以下错误:

File "..\pandas\io\sql.py", line 1436, in read_query
columns = [col_desc[0] for col_desc in cursor.description]

TypeError: 'NoneType' object is not iterable

关于如何解决这个问题的任何想法?

标签: pythonpandasteradata

解决方案


您的 SQL (sqlStr) 是一个 DDL (CREATE Table) -> 它不会提供任何可以放入 Pandas Dataframe (pd.read_sql) 的结果集。

如果您只想创建表,则不需要熊猫:

session.execute(sqlStr);

如果要从表“TEST123”中读取:

sqlStr = "SELECT col1 FROM Test123;";
result = pd.read_sql(sqlStr, self.session);

或者:

result = pd.read_sql_table("Test123", self.session);

推荐阅读