需要从国际空间站导入数据。 使用代码
r= urllib.request.urlopen('http://www.celestrak.com/NORAD/elements/stations.txt')
x=r.read(1000)
当我尝试用
分割数据时x=x.split("\r\n")
我收到错误
raceback (most recent call last):
File "<pyshell#26>", line 1, in <module>
x=x.split("\r\n")
TypeError: a bytes-like object is required, not 'str'
我该如何解决这个问题?
答案 0 :(得分:1)
为什么不使用requests
?
# Load the Rails application.
require File.expand_path('../application', __FILE__)
# Initialize the Rails application.
Rails.application.initialize!
答案 1 :(得分:-1)
响应(x)是bytes
个实例,因此您需要为拆分方法提供bytes
实例。
x = x.split(b'\r\n')
例如:
>>> res = b'abc\r\ndef' # Note the 'b' at the start, denoting bytes
>>> res.split('\r\n')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: a bytes-like object is required, not 'str'
>>> res.split(b'\r\n')
[b'abc', b'def']
或者你可以将字节解码为unicode,如果你知道它们的编码,然后用字符串调用split:
>>> decoded = res.decode('utf-8')
>>> print(repr(decoded) )
'abc\r\ndef'
>>> decoded.split('\r\n')
['abc', 'def']