我得到一个“TypeError:需要一个类似字节的对象,而不是'str'”。我在使用StringIO时遇到了一个错误“TypeError:initial_值必须是str或None,而不是bytes”,我在使用Python 3.7。
# Location of Alexa 1M
ALEXA_1M = 'http://s3.amazonaws.com/alexa-static/top-1m.csv.zip'
# Our ourput file containg all the training data
DATA_FILE = 'traindata.pkl'
def get_alexa(num, address=ALEXA_1M, filename='top-1m.csv'):
"""Grabs Alexa 1M"""
url = urlopen(address)
zipfile = ZipFile(BytesIO(url.read()))
return [tldextract.extract(x.split(',')[1]).domain for x in \
zipfile.read(filename).decode('utf-8').split()[:num]]
我也得到这个函数同样的错误。"返回pickle.load(打开(DATA_FILE))"
"""Grab all data for train/test and save
force:If true overwrite, else skip if file
already exists
"""
if force or (not os.path.isfile(DATA_FILE)):
domains, labels = gen_malicious(10000)
# Get equal number of benign/malicious
domains += get_alexa(len(domains))
labels += ['benign']*len(domains)
pickle.dump(zip(labels, domains), open(DATA_FILE, 'w').decode("utf-8"))
def get_data(force=False):
"""Returns data and labels"""
gen_data(force)
return pickle.load(open(DATA_FILE))
这个错误基本上说你的字符串是字节串。为了解决这个问题,我认为你可以尝试使用. decode('utf-8')
url = urlopen(address)
zipfile = ZipFile(BytesIO(url.read()))
return [tldextract.extract(x.split(',')[1]).domain for x in \
zipfile.read(filename).decode('utf-8').split()[:num]]
以下是尝试使用套接字修改用户提供的输入的代码: 当我执行它并提供输入时,会发生以下错误: 我能做些什么来解决这个问题?
问题内容: 几年前,我正在使用一个先前提出的问题的代码,但是,我认为这已经过时了。尝试运行代码,我收到上述错误。我仍然是Python的新手,因此无法从类似的问题中得到很多澄清。有人知道为什么会这样吗? 追溯 问题答案: 默认情况下返回stdout或stderr流的对象。这意味着您还需要在针对这些对象的操作中使用对象。使用对象。使用字节文字(注意前缀): 或先解码数据(如果您知道所使用的编码)(通常
我正在运行一个代码,但这一行出现错误: TypeError:需要一个类似字节的对象,而不是str 这里显示的是类型列表的各个部分,是 TypeError:需要一个类似字节的对象,而不是str
我最近迁移到Python 3.5。此代码在Python 2.7中正常工作: 升级到3.5后,我得到了: TypeError:需要类似字节的对象,而不是'str' 错误在最后一行(模式搜索代码)。 我试过使用函数,并尝试: -没用。 我能够解决几乎所有的Python
我试图创建一个程序,在本地机器上打开一个端口,让其他人通过netcat连接到它。我现在的代码是。 我是新的Python和套接字。但是当我运行这段代码时,它将允许我发送一个带有命令的netcat连接: 但是在我的Python脚本中,我得到了c.send的错误: 我基本上只是尝试打开一个端口,允许netcat连接,并在该机器上安装一个完整的外壳。
问题内容: 我最近已经迁移到Py 3.5。这段代码在Python 2.7中正常工作: 升级到3.5后,我得到了: 最后一行错误(模式搜索代码)。 我试过使用语句两侧的函数,也尝试过: -无济于事。 我能够很快解决几乎所有的问题,但是这个小小的声明困扰着我。 问题答案: 你以二进制模式打开文件: 这意味着从文件读取的所有数据都作为bytes对象而不是作为对象返回。然后,你不能在容纳测试中使用字符串: