我一直在尝试使用名为chatbot1.5.2b的python程序。它旨在用于Wikia。但是,在执行完所有步骤后,我在运行启动脚本时遇到此错误:
线程Thread-1中的异常: 回溯(最近一次调用最后一次):
File "C:\Python27\lib\threading.py", line 810, in __bootstrap_inner
self.run()
File "C:\Python27\lib\site-packages\chatbot.py", line 405, in run
connect = self.c.connection()
File "C:\Python27\lib\site-packages\chatbot.py", line 361, in connection
var = self.__connection(self.settings, self.xhr)
File "C:\Python27\lib\site-packages\chatbot.py", line 348, in __connection
str(settings['room']) + "&t=" +
TypeError: coercing to Unicode: need string or buffer, NoneType found
我正在使用Python 2.7.8。我在这里已经阅读了几个非常相似的主题的其他问题,但是如果我尝试跟随它们,例如将str()
放在"&t="
周围,它会给出完全相同的错误,除了它显示了代之以str("&t=")
代码。
以下是chatbot.py中第348行附近区域的代码:
data = self.session.get("http://" + settings["host"] + ":" +
settings["port"] +
"/socket.io/1/xhr-polling/" + xhr_polling
+ "?name=" + self.username + "&key=" +
settings['chatkey'] + "&roomId=" +
str(settings['room']) + "&t=" +
time)
content = re.findall(r'.:::(.*)', data.content.decode('utf8'))
任何帮助非常感谢。我对Python不太熟悉,所以我可能会做一些非常愚蠢的事情。
答案 0 :(得分:1)
您无法将None转换为unicode值。
这是你需要做的事情
在348之前添加此行
room = str(settings['room']) if str(settings['room']) == None else ''
用这个
代替第348行data = self.session.get("http://{host}:{port}/socket.io/1/xhr-polling/{polling}?name={username}&key={chatkey}&roomId={room}&t={time}".format(host=settings["host"],port=settings["port"],polling=xhr_polling,username=self.username,chatkey=settings["chatkey"],room=room,time=time))