Python 将从服务器提取的数据转换为字符串

Python 将从服务器提取的数据转换为字符串,python,string,twitch,chatbot,Python,String,Twitch,Chatbot,我已经在TwitchTV-Python聊天机器人上工作了一段时间,但我仍然在掌握Python 这似乎很简单,但这让我困惑,所以我决定问: 我目前正在使用data=irc.recv 我要做的是使用提取的数据并将其转换为字符串,这样我就可以使用str.isupper()检查消息中的大写字母 我已经尝试了一些方法 data = irc.recv (4096) msg = data() capsTime = "30s" str = msg if str.isupper(): message("[-

我已经在TwitchTV-Python聊天机器人上工作了一段时间,但我仍然在掌握Python

这似乎很简单,但这让我困惑,所以我决定问:

我目前正在使用
data=irc.recv

我要做的是使用提取的数据并将其转换为字符串,这样我就可以使用
str.isupper()检查消息中的大写字母

我已经尝试了一些方法

data = irc.recv (4096)
msg = data()
capsTime = "30s"
str = msg
if str.isupper():
   message("[-] Woah! Hold back on the caps! (Timeout " + capsTime + ")")
   message("/timeout " + user + capsTime)
# variable "user" already defined
这只是其中一个,不幸的是没有起作用


编辑:

这是我的新代码,它运行时没有错误消息,但它的功能不符合我的要求

while True:
   data = irc.recv (4096)
   user = data.split(':')[1]
   user = user.split('!')[0]
   caps = data.split(':')[0]
   capsmsg = str(data)

   print data
   if data.find('PING') != -1: 
       irc.send('PONG ' + data.split()[1] + '\r\n')

   if capsmsg.isupper():
       message("[-] Woah! Hold back on the caps, " + user + "! (Timeout 30s)")
       message("/timeout " + user + " 30s")

编辑2:

预期产出: 如果在所有CAP中都找到消息,它将打印此消息并为用户计时:
消息(“[-]Woah!按住封口,“+user+”!(超时30秒)”)

电流输出: bot不会拾取消息或运行脚本代码。

请尝试以下操作:

data = irc.recv (4096)
# msg = data()
capsTime = "30s"
mystr = repr(data)
if mystr.isupper():
   message("[-] Woah! Hold back on the caps! (Timeout " + capsTime + ")")
   message("/timeout " + user + capsTime)
# variable "user" already defined

不要使用保留关键字。

“不起作用”-我们需要更多的信息。请添加您遇到的所有错误消息和意外行为。您是否尝试过像
stri=str(msg)
这样的简单强制转换?我重命名了str变量,因为它是不允许的名称。str是保留关键字!感谢这一点-它没有很好地工作,因为它给了我这个错误消息:
TypeError:“str”对象不可调用
msg=data()
我还忘了提到我是Python的新手,所以如果我自己无法解决这个问题,我很抱歉。@pythagon好的,我明白你的问题了。我更新我的答案,让我知道它是否有效。修复了无法调用字符串的错误-错误是现在没有定义“msg”。@pythagon在这段代码中,没有msg了。你在其他地方用过味精吗?您可以用数据替换msg,然后再试一次。我按您的方式添加了代码。它没有给出任何错误,但在Twitch聊天中测试时它不起作用。我已经用下面的新代码更新了我原来的帖子。