0

我正在使用 Cloud9 IDE 并创建了一个 Python 项目。

但是,我在编辑器中的一行中不断收到错误,当我运行它时这不是错误,它说:

Instance of 'dict' has no 'columns' member

如何使用 Python 语法或 Cloud9 语法抑制此错误?

注意:当我运行代码时,它不会导致错误。我的 IDE 编辑器只是认为这是一个错误并警告我。

    xl      = pd.ExcelFile(dataFileUrl)
    sheets  = xl.sheet_names
    data    = xl.parse(sheets[0])


    # the ERROR warning is on the line for data.columns
    for ecol in expectedCols:
        if (ecol in data.columns) == False:
            return {
                'fail':   True,
                'code':   402,
                'msg':    "Incomplete data. Missing: " + ecol
            }

在此处输入图像描述

4

3 回答 3

2

这是他们的文档中提到的 PyLint 的一个已知限制。

E1101

%s %r 没有 %r 成员

函数 %r 没有 %r 成员
变量 %r 没有 %r 成员
. . .

描述

当为不存在的成员访问对象(变量、函数……)时使用。

误报:此消息可能报告动态创建但在访问它们时存在的对象成员。

尝试# pylint: disable=no-member在页面顶部添加评论(我以前从未修改过 PyLint,所以我完全确定这个通过评论进行配置的系统是如何工作的......)

于 2017-03-20T20:27:28.493 回答
1

你可以使用try(相当于其他语言的try/catch或rescue/ensure)

try:
   ecol in data.columns:
except:
    #Handle differently if there is a problem or pass
    return {
            'fail':   True,
            'code':   402,
            'msg':    "Incomplete data. Missing: " + ecol
        }
于 2017-03-20T19:45:34.313 回答
1

根据@LucG 的评论,我尝试以不同的方式获取列标题列表。

因此,按照这个线程,我使用了

list(df) 

代替

df.columns

这抑制了警告。

于 2017-03-20T20:05:21.643 回答