python - matplotlib从url : TypeError: a bytes-like object is required,而不是 'str'读取数据

标签 python matplotlib typeerror

我正在尝试遵循 this tutorial 中的“地震”示例。代码如下:

import urllib
from mpl_toolkits.basemap import Basemap

# Significant earthquakes in the last 30 days
url = urllib.request.urlopen("https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/4.5_month.csv")

# Reading and storage of data
data = url.read()
data = data.split(b'\n')[+1:-1]

E = np.zeros(len(data), dtype=[('position',  float, 2),
                               ('magnitude', float, 1)])

for i in range(len(data)):
    row = data[i].split(',')
    E['position'][i] = float(row[2]),float(row[1])
    E['magnitude'][i] = float(row[4])

我收到以下错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-66-eed77a8fb64a> in <module>()
     16 
     17 for i in range(len(data)):
---> 18     row = data[i].split(',')
     19     E['position'][i] = float(row[2]),float(row[1])
     20     E['magnitude'][i] = float(row[4])

TypeError: a bytes-like object is required, not 'str'

我用谷歌搜索了类似的问题,据我了解,它与使用 Python 3.+ 而不是 2.7 有关,但我不知道如何调整代码以使其工作。抱歉,如果问题很愚蠢,我不明白我需要做什么。

我尝试了以下方法,但没有成功:

if sys.version_info[0] == 3:
    from urllib.request import urlopen
else:
    from urllib import urlopen

with urlopen(url) as url:
    data = url.read()

最佳答案

当您尝试使用 split 时,您使用的是 ',' 而不是 b','。关键是 bytesstr 需要使用 encodedecode 显式地相互转换,否则你必须始终如一地使用其中之一。

关于python - matplotlib从url : TypeError: a bytes-like object is required,而不是 'str'读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46649652/

相关文章:

python - VS Code 无法识别 Pulumi 和 Pulumi Azure Native

python - Tornado +桃子。不断增长的响应时间

python - Seaborn 分类数据条形图,分组

python - 如何填充 matplotlib 网格?

matplotlib - IPython 中的 python-ggplot 截断图中的图例

python 2.7 : TypeError: 'builtin_function_or_method' object is not subscriptable

Python:__init__() 接受 2 个位置参数,但给出了 3 个

python - 下载 python3 中指向的 torrent 文件内容

python脚本输出到网页

JavaScript - 未捕获的类型错误 : Cannot read property 'src' of undefined