我最近一直在做一个项目,从美国国家海洋和大气管理局的网站上检索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}$
HTTPResponce.read()
返回bytes
对象。bytes
方法(例如.find
)需要bytes
类型的参数。在您可以将
br1_string
更改为bytes
对象:或者,解码响应:
^{pr2}$根据the documentation, it takes a bytes-like object or an int。在
这里有两种类型:}。在
str
和bytes
。两者都有一个.find
方法。很容易弄错他们。您的website_html
文件实际上是bytes
,而不是{相关问题 更多 >
编程相关推荐