Преобразуване на данни, изтеглени от сървъра, в низ

От известно време работя върху чат бот на TwitchTV Python, но все още се справям с Python.

Може да изглежда просто, но това ме обърка и реших да попитам:

В момента изтеглям съобщения от Twitch Chat с помощта на 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:

Очакван изход: Ако бъде намерено съобщение с ВСИЧКИ главни букви, то ще отпечата това съобщение и ще изчака потребителя: message("[-] Woah! Hold back on the caps, " + user + "! (Timeout 30s)")

Текущ резултат: Ботът не взема съобщението или не изпълнява скриптовия код.


person pythagon    schedule 25.08.2014    source източник
comment
не проработи - ще ни трябва малко повече информация от това. Моля, добавете всички съобщения за грешка и неочаквано поведение, които сте срещнали.   -  person hlt    schedule 25.08.2014
comment
Пробвахте ли прост актьорски състав като stri = str(msg)? Преименувах променливата str, защото това е непозволено име.   -  person Robin Carlier    schedule 25.08.2014
comment
str е запазена ключова дума!   -  person Tushar    schedule 25.08.2014


Отговори (1)


Опитайте тази:

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

Не използвайте запазена ключова дума.

person Stephen Lin    schedule 25.08.2014
comment
Благодаря за това - не свърши работа, тъй като ми даде това съобщение за грешка: TypeError: 'str' object is not callable за реда msg = data() Също така забравих да спомена, че съм доста нов в Python, така че съжалявам, ако изглеждам глупав, тъй като не мога да разреша това за себе си. - person pythagon; 25.08.2014
comment
@pythagon Добре, виждам проблема ти. Актуализирам отговора си, уведомете ме дали работи. - person Stephen Lin; 25.08.2014
comment
Поправена е грешката при невъзможността да се извика низът - грешката вече е „msg“ не е дефинирана. - person pythagon; 25.08.2014
comment
@pythagon В този код вече няма съобщение. Използвал ли си msg някъде другаде? Можете да замените съобщението с данни и да опитате отново. - person Stephen Lin; 25.08.2014
comment
Добавих кода, както го поставихте. Не дава грешки, но не работи при тестване в чата на Twitch. Актуализирах оригиналната си публикация с новия си код по-долу. - person pythagon; 25.08.2014
comment
@pythagon Какъв е очакваният ви резултат? И какво е сега? Можете ли да го актуализирате в оригиналната си публикация? - person Stephen Lin; 25.08.2014
comment
@pythagon capsmsg.isupper() връща True, ако всички главни букви в capsmsg са главни букви и в него има поне един главни букви. Очевидно във вашия случай capsmsg.isupper() връща False. Можете да го разпечатате, за да проверите дали съм прав. - person Stephen Lin; 25.08.2014
comment
Добре благодаря. Знаех за това, но сега се опитвам да го накарам да върне „Вярно“, ако съобщението е само с главни букви. Ще се забърквам с него, но просто ще оставя този въпрос тук, вместо да продължавам. Благодаря ви за съветите и помощта! - person pythagon; 25.08.2014