2015-05-21 7 views
1

Я пытаюсь разбить символы b,'(). Проблема, с которой я сталкиваюсь, заключается в том, что он говорит, что TypeError 'str' не поддерживает интерфейс буфера.Проблемы с использованием полосы() по переменной

Вот соответствующие части кода в этом:

import urllib3 
def command_uptime(): 

    http = urllib3.PoolManager() 
    r = http.request('GET', 'https://nightdev.com/hosted/uptime.php?channel=TrippedNW') 
    rawData = r.data 
    liveTime = bytes(rawData.strip("b,\'()", rawData)) 

    message = "Tripped has been live for: ", liveTime 
    send_message(CHAN, message) 
+0

Исправьте отступа. Его непонятно, какие строки находятся в вашей функции и которые не являются –

+0

, у вас есть '.split()' в вашем коде, а не '.strip()' –

+0

Исправление прямо сейчас @PaulRooney –

ответ

3

Что у вас есть двоичные данные. Это не строка. Сначала вам нужно его расшифровать.

Также вам не нужно передавать rawData себе в виде полосы.

import urllib3 

def command_uptime(): 

    http = urllib3.PoolManager() 
    r = http.request('GET', 'https://nightdev.com/hosted/uptime.php?channel=TrippedNW') 
    strData = r.data.decode('utf-8') 
    liveTime = strData.strip("b,\'()") 

    message = "Tripped has been live for: %s" % liveTime 
    print(message) 

command_uptime() 

быть также известно, что ваша message переменная кортежа не строка. Я не знаю, ожидает ли это send_message. Я отформатировал его в одну строку.

0

Просто удалите второй аргумент.

import urllib3 
def command_uptime(): 

    http = urllib3.PoolManager() 
    r = http.request('GET', 'https://nightdev.com/hosted/uptime.php?channel=TrippedNW') 
    rawData = r.data 
    liveTime = bytes(rawData.strip("b,'()")) 

    print("Tripped has been live for: %s" % liveTime) 


command_uptime() 

Выход:

Tripped has been live for: 1 hour, 18 minutes 

 Смежные вопросы

  • Нет связанных вопросов^_^