.find() does not take a string? Python 3.6 -


i have lately been working on project retrieves metar noaa website, , slices metar data , prints it. have encountered problem change code python3.6, when try .find() marker sates start of metar data gives me error message:

file "/users/mrzeus/desktop/py3.6_project/version_1.py", line 22, in damainprogram     data_start = website_html.find("<--data_start-->") typeerror: bytes-like object required, not 'str' 

i understand error saying. means .find() not take string, according python docs .find() function take string!

here section of code having trouble with:

website = urllib.request.urlopen(airid)  website_html = website.read()  print(website_html)  br1_string = "<!-- data starts here -->"  data_start = website_html.find(br1_string)  br1 = data_start + 25  br2 = website_html.find("<br />")  metar_slice = website_html[br1:br2]  print("here undecoded metar data:\n"+metar_slice) 

httpresponce.read() returns bytes object. bytes methods (such .find) require arguments of type bytes.

you either change br1_string bytes object:

br1_string = b"<!-- data starts here -->" 

or, decode response:

website_html = website.read().decode() 

Comments

Popular posts from this blog

node.js - Node js - Trying to send POST request, but it is not loading javascript content -

javascript - Replicate keyboard event with html button -

javascript - Web audio api 5.1 surround example not working in firefox -