奇怪的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()