在变量上使用 strip() 的问题

Issues using strip() on a variable

我正在尝试去除字符 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)

你拥有的是二进制数据。它不是一个字符串。您需要先对其进行解码。

另外,你不需要在 strip 方法中将 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 是否期望这样。我把它格式化成一个字符串。

只需删除第二个参数。

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