.find()不接受字符串?Python 3.6

2024-05-23 15:45:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我最近一直在做一个项目,从美国国家海洋和大气管理局的网站上检索METAR,然后将METAR数据切片并打印出来。现在我遇到了一个将代码改为Python3.6的问题,当我试图.find()声明METAR数据开头的标记时,它会给出以下错误消息:

File "/Users/MrZeus/Desktop/PY3.6_PROJECT/version_1.py", line 22, in daMainProgram
    data_start = website_html.find("<--DATA_START-->")
TypeError: a bytes-like object is required, not 'str'

我确实明白这个错误在说什么。这意味着.find()不接受字符串,但根据python文档,.find()函数确实接受字符串!在

以下是我遇到问题的代码部分:

^{pr2}$

Tags: 数据项目字符串代码标记声明消息网站
2条回答

HTTPResponce.read()返回bytes对象。bytes方法(例如.find)需要bytes类型的参数。在

您可以将br1_string更改为bytes对象:

br1_string = b"<!  Data starts here  >"

或者,解码响应:

^{pr2}$

根据the documentation, it takes a bytes-like object or an int。在

这里有两种类型:strbytes。两者都有一个.find方法。很容易弄错他们。您的website_html文件实际上是bytes,而不是{}。在

相关问题 更多 >