繁体   English   中英

Python:没有JSON对象可以被解码

[英]Python : no JSON object could be decoded

我正在尝试运行此应用程序:

https://github.com/bmjr/guhTrends

我在命令行中运行以下脚本的python 2.7.x 我估计它是用python3.x编写的。 以下代码中弃用了什么?

import urllib
import json
import matplotlib.pyplot as plt

dates = urllib.request.urlopen('http://charts.spotify.com/api/tracks/most_streamed/global/weekly/')
dataDates = json.loads(dates.read().decode())

错误:

Traceback (most recent call last):
  File "DataMining.py", line 6, in <module>
    dates = urllib.request.urlopen('http://charts.spotify.com/api/tracks/most_streamed/global/weekly/')
AttributeError: 'module' object has no attribute 'request'

您正在请求当前不可用的资源(我看到的是504)。 由于这可能在您请求远程服务时发生,因此请始终检查响应上的状态代码; 并非您的代码一定是错误的,在这种情况下,您假设响应是有效的JSON,而没有检查请求是否成功。

查看urllib文档以了解如何执行此操作(或者,最好遵循该页面顶部的建议,而使用requests )。

该脚本在python2下不起作用,因为python2的urllib 没有请求模块

如果要在python2下开始运行该脚本,请使用urllib2.urlopen而不是urllib.request

要让python脚本在bith( python2python3 )上运行,请使用六个模块 ,即Python 2和3兼容库

from six.moves import urllib
import json
import matplotlib.pyplot as plt

dates = urllib.request.urlopen('http://charts.spotify.com/api/tracks/most_streamed/global/weekly/')
dataDates = json.loads(dates.read().decode())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM