从urrlib中分割结果

时间:2016-03-16 19:45:57

标签: python

需要从国际空间站导入数据。 使用代码

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'

我该如何解决这个问题?

2 个答案:

答案 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']