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