You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3中如何去除输出的b'前缀?解码列表报错求助

解决输出中的b'前缀及AttributeError问题

嗨,我来帮你搞定这个问题~

首先,你遇到的AttributeError是因为response.content.splitlines()返回的是一个由bytes对象组成的列表,而列表本身并没有decode方法——只有单个的bytes元素才能调用decode来转成字符串。你之前直接对整个列表调用decode,自然会报错啦。

这里有两种简单的解决方法,都能帮你去掉输出里的b'前缀:

方法一:直接使用response.text(推荐)

requests的response.text会自动根据响应的编码把内容转换成字符串,比手动处理bytes更方便。修改后的代码如下:

import requests
import random

word_site = "http://link.de/prox.txt"
response = requests.get(word_site)
# 用text获取字符串内容,再按行分割得到字符串列表
WORDS = response.text.splitlines()
print(random.choice(WORDS))

这样WORDS里的每个元素都是str类型,随机选择后输出就不会有b'前缀了。

方法二:遍历列表逐个解码

如果你一定要用response.content,可以通过列表推导式遍历每个bytes元素,逐个解码成字符串:

import requests
import random

word_site = "http://link.de/prox.txt"
response = requests.get(word_site)
# 对列表中的每个bytes元素单独解码
WORDS = [line.decode('utf-8') for line in response.content.splitlines()]
print(random.choice(WORDS))

这个方法会把原来的bytes列表转换成字符串列表,之后的操作就不会有问题了。

总结一下:核心问题是你搞混了列表和单个bytes对象的方法,只要确保最终得到的是字符串列表,就能正常输出不带b'前缀的内容啦。

内容的提问来源于stack exchange,提问作者Mister

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:33:12