2015-05-29 2 views
4

Я пытаюсь вытащить некоторые данные из хранимой процедуры на сервере sql с помощью python.Объект NoneType не является итерируемой ошибкой в ​​pandas

Вот мой код:

import datetime as dt 
import pyodbc 
import pandas as pd 

conn = pyodbc.connect('Trusted_Connection=yes', driver = '{SQL Server Native client 11.0}',server = '*****, database = '**') 

pd.read_sql("EXEC ******** '20140528'",conn) 

Я получаю ошибку: Ошибка типа: объект «NoneType» не итерации

Я подозреваю, что это происходит потому, что у меня есть ячейки в таблице SQL со значением NULL но не уверен, что это истинная причина, по которой я получаю ошибку. Я запустил много операторов sql, используя один и тот же код без каких-либо ошибок.

Вот отслеживающий:

In[39]: pd.read_sql("EXEC [dbo].[] '20140528'",conn) 
Traceback (most recent call last): 
    File "C:*", line 3032, in run_code 
    exec(code_obj, self.user_global_ns, self.user_ns) 
    File "<ipython-input-39-68fb1c956dd7>", line 1, in <module> 
    pd.read_sql("EXEC [dbo].[] '20140528'",conn) 
    File "C:*", line 467, in read_sql 
    chunksize=chunksize 
    File "c:***", line 1404, in read_query 
    columns = [col_desc[0] for col_desc in cursor.description] 
TypeError: 'NoneType' object is not iterable 
+0

Можете ли вы выслать полный код ошибки? – SuperBiasedMan

+0

уверены, что ваш запрос действительно? что отличается от этого блока кода, чем другие, которые работают? –

+2

Я вижу много непревзойденных котировок закрытия для строк '', ''? – ZdaR

ответ

5

Ваш sproc нуждается

SET NOCOUNT ON; 

Без этого sql возвратит rowcount для вызова, который вернется без имени столбца, вызывая ошибку NoneType.

+0

Я также столкнулся с этой проблемой, используя временные таблицы в моих запросах. Этот метод также будет исправлен. –

Смежные вопросы