Python TypeError:无法连接';str';和';非类型';物体?
我有一个很大的脚本(如果有必要的话,我会发布整个脚本,但它非常大),当我运行它时,它的开头很好,但它会立即给我“TypeError:无法连接”str“和”NoneType“对象”,当涉及到最后一段代码时:Python TypeError:无法连接';str';和';非类型';物体?,python,string,nonetype,Python,String,Nonetype,我有一个很大的脚本(如果有必要的话,我会发布整个脚本,但它非常大),当我运行它时,它的开头很好,但它会立即给我“TypeError:无法连接”str“和”NoneType“对象”,当涉及到最后一段代码时: with open("self.txt", "a+") as f: f = open("self.txt", "a+") text = f.readlines() text_model = markovify.Text(text) for i in r
with open("self.txt", "a+") as f:
f = open("self.txt", "a+")
text = f.readlines()
text_model = markovify.Text(text)
for i in range(1):
tool = grammar_check.LanguageTool('en-GB')
lin = (text_model.make_sentence(tries=800))
word = ('' + lin)
matches = tool.check (word)
correct = grammar_check.correct (word, matches)
print ">",
print correct
print ' '
f = open("self.txt", "a+")
f.write(correct + "\n")
我到处都找了,但什么也没找到。这似乎与:
word=(''+lin)
有关。但无论我做什么,我都无法修复它。我做错了什么?不能连接字符串和非类型对象。在代码中,您的变量lin
似乎没有被指定您认为是的值。您可以尝试以下启动方式启动的if
块:
如果类型(lin)=str:
一些代码
其他:
引发异常(“lin不是正确的数据类型”)
要在打印之前验证
lin
是否是正确的数据类型。我不确定我是如何做到的,但通过一点修改和谷歌搜索,我想出了一个解决方案,更正的代码在这里(如果您感兴趣):
感谢所有的回复,他们让我思考,这就是我修复它的方式 您试图连接的字符串可能重复,
“string”+“string”
,其中一个字符串实际上不是字符串,而是非类型
,可能是返回函数的字符串。它看起来像文本模型。make\u-statement()
可以返回无
。您要么修复该函数(因此它总是返回字符串),要么在此代码中检查None
。Python回溯显示错误发生的行。欢迎使用StackOverflow。请阅读并遵循帮助文档中的发布指南。适用于这里。在您发布MCVE代码并准确描述问题之前,我们无法有效地帮助您。我们应该能够将您发布的代码粘贴到一个文本文件中,并重现您描述的问题。谢谢,这种方法很有效。它可以打印lin,但是当它在if语句中时,lin没有改变(它是一个马尔可夫链字符串),所以它只打印相同的内容。我该怎么办?这基本上就是原始代码所做的。最好是解决根本问题。
with open("self.txt", "a+") as f:
f = open("self.txt", "a+")
text = f.readlines()
text_model = markovify.Text(text)
for i in range(1):
tool = grammar_check.LanguageTool ('en-GB')
lin = (text_model.make_sentence(tries=200))
matches = tool.check (lin)
correct = grammar_check.correct (lin, matches)
lowcor = (correct.lower())
print ">",
print str (lowcor)
print ' '
f = open("self.txt", "a+")
f.write(lowcor + "\n")