我想从URL中打开文件的第一行,搜索特定的字符串,然后分割该字符串。
request=urllib.request.Request(url)
response=urllib.request.urlopen(request)
input_file=response.readlines()
for l in input_file:
if "target" in l:
dum, stat = l.split(":")
stat = stat.strip()
我希望获得stat =“ StationX” 相反,我得到
TypeError:需要一个类似字节的对象,而不是'str'
因为input_file是类型字节列表,而不是类型字符串列表。 我不知道如何将input_file作为字符串输入(我认为那是readlines()与read()的区别?)或将类型字节列表转换为类型字符串列表。
答案 0 :(得分:0)
urllib.request
软件包对此有一些细微差别,如下所示。有人可能期望.read()
的返回类型是一个字符串,但实际上是必须解码的原始字节。
>>> import urllib.request
>>> req = urllib.request.Request("http://www.voidspace.org.uk")
>>> res = urllib.request.urlopen(req)
>>> raw_contents = res.read()
>>> type(raw_contents)
<class 'bytes'>
>>> page = raw_contents.decode()
>>> type(page)
<class 'str'>
现在就您而言
request = urllib.request.Request(url)
response = urllib.request.urlopen(request)
raw_lines = response.readlines()
for raw_line raw_lines:
line = raw_line.decode()
if "target" in line:
dum, stat = l.split(":")
stat = stat.strip()
或者,
for line in map(lambda x: x.decode(), raw_lines):
# etc