Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
奇怪的python问题';unicode';对象没有属性';阅读';_Python_Json_Unicode_Python Requests - Fatal编程技术网

奇怪的python问题';unicode';对象没有属性';阅读';

奇怪的python问题';unicode';对象没有属性';阅读';,python,json,unicode,python-requests,Python,Json,Unicode,Python Requests,这是我的代码,有人知道怎么回事吗?我直接用浏览器打开,它可以工作 data = requests.get('http://ws.audioscrobbler.com/2.0/?method=library.getartists&api_key=4c22bd45cf5aa6e408e02b3fc1bff690&user=joanofarctan&format=json').text data = json.load(data) print type(data) return

这是我的代码,有人知道怎么回事吗?我直接用浏览器打开,它可以工作

data = requests.get('http://ws.audioscrobbler.com/2.0/?method=library.getartists&api_key=4c22bd45cf5aa6e408e02b3fc1bff690&user=joanofarctan&format=json').text
data = json.load(data)
print type(data)
return data
提前感谢,,
Lin

由于
数据是unicode/str变量,因此引发此错误,请更改代码的第二行以解决错误:

data = json.loads(data)
json.load
在第一个参数位置获取一个file对象,并调用该方法的
read
方法

您还可以调用响应的
json
方法直接获取数据:

response = requests.get('http://ws.audioscrobbler.com/2.0/?method=library.getartists&api_key=4c22bd45cf5aa6e408e02b3fc1bff690&user=joanofarctan&format=json')
data = response.json()
以单个(unicode)字符串的形式返回内容。但是,该函数需要一个类似文件的参数

解决方案相当简单:只需使用而不是加载

data = json.loads(data)
不过,更好的解决方案是直接调用响应对象。所以不要使用
.text
,而是使用
.json()


虽然这在内部使用了
json.load
本身,但它隐藏了实现细节,因此您可以只关注获取json响应。

删除
json.load
请求
对象有一个
.json()
method。请记住对有用的答案和解决问题的答案进行投票,以将此问题标记为已解决。非常有效!。。感谢使用json.loads(结尾是“s”)而不是json.loadfixrd我的问题这两个工作解决方案之间有什么特别的偏好吗
data=response.json()!
data = requests.get(…).json()