Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ';非类型';对象没有属性';集团';当访问列表时?_Python - Fatal编程技术网

Python ';非类型';对象没有属性';集团';当访问列表时?

Python ';非类型';对象没有属性';集团';当访问列表时?,python,Python,这里只是一个小前言,我对Python非常非常陌生,我在开始当前项目时才开始学习: 我目前正在写一个reddit机器人,它在某个子reddit中搜索评论。它拾取前缀为@的注释。完成后,我希望它搜索文本文件,并将其与@后面的单词进行比较,以查看所述单词是否在文本文件中。如果这是真的,机器人将发布一个回复,并附上相关信息 我的问题是,当我运行我的程序时,我得到了以下结果: Traceback (most recent call last): File "main.py", line 46, i

这里只是一个小前言,我对Python非常非常陌生,我在开始当前项目时才开始学习:

我目前正在写一个reddit机器人,它在某个子reddit中搜索评论。它拾取前缀为
@
的注释。完成后,我希望它搜索文本文件,并将其与
@
后面的单词进行比较,以查看所述单词是否在文本文件中。如果这是真的,机器人将发布一个回复,并附上相关信息

我的问题是,当我运行我的程序时,我得到了以下结果:

Traceback (most recent call last):
    File "main.py", line 46, in <module>
        name_hyphen = searchObjectWithHyphen.group(1)
AttributeError: 'NoneType' object has no attribute 'group'  
回溯(最近一次呼叫最后一次):
文件“main.py”,第46行,在
name_hyphen=searchObjectWithHyphen.group(1)
AttributeError:“非类型”对象没有属性“组”
然后程序自行终止。我很确定这与怪物列表中的
if name
if name\u hyphen
行或变量
name
name\u hyphen
中的搜索对象有关,因为没有这些行,程序运行正常(这意味着我的搜索对象不会返回
none

我错过了什么


。我还检查了列表是否包含我拥有的文本文件中的所有关键字。注意:我的文本文件中的关键字用新行分隔,错误消息的含义始终相同。您正试图访问
None
对象上的属性。在这种情况下

searchObjectWithHyphen
None
。用连字符检查分配
searchobject的代码,找出其原因
None
。很可能是您在代码前面犯了错误。如果
searchObjectWithHyphen
可能是
None
这是正常的,那么您需要特殊情况处理:

if searchObjectWithHyphen is None:
    ....

我不想尝试为您进行详细的特定调试。不仅仅是因为您没有在问题中包含代码。但更多是因为您在这里真正的机会是学习如何调试这类问题

问题在于,您的
regex
带连字符搜索在此行返回NoneType:
searchObjectWithHyphen=re.search(patternWithHyphen,comment.body,re.IGNORECASE)

这是因为在您的模式中:

patternWithHyphen='@'+'(\w+(?:-\w+)”

您必须跳出连字符,如下所示:

patternWithHyphen='@'+'(\w+(?:\-\w+)”


请让我知道这是否有效。希望这有助于

公平地说,OP确实提供了代码链接和特定行references@sshashank124指向一些非现场粘贴库的链接。所以接受代码。当代码可以发布在这里时,我不觉得有动力在场外挖掘。不管怎么说,我的主要观点是试图教给大家错误的含义,而不是这里的具体原因。你说得有道理。在阅读您的答案后,我再次查看了我的代码并发现了问题:在检查
searchObject
是否为
True
之前,我已在
searchObject
的组中声明了一个变量
name
。谢谢你的意见!我也很感激你没有用勺子给我答案。不,不是这个。我已经测试了正则表达式模式,它们都工作得很好。:)@Python解释器Xozzo请求differ@DavidHeffernan我刚刚测试了带有和不带连字符的正则表达式,它们都可以工作。那里一定有漏洞。不管怎样,我只是浏览了一些正则表达式文档,并意识到为什么它需要被转义。感谢sshashank指出这一点!