片段
import json
teststr = '{"user": { "user_id": 2131, "name": "John", "gender": 0, "thumb_url": "sd", "money": 23, "cash": 2, "material": 5}}'
json = json.load(teststr)
抛出异常
Traceback (most recent call last):
File "<input>", line 1, in <module>
AttributeError: 'str' object has no attribute 'loads'
如何解决问题?
最佳答案
json.load
接收一个文件指针,然后你传入一个字符串。您可能打算使用 json.loads
它接受一个字符串作为它的第一个参数。
其次,当你import json
时,你应该注意不要覆盖它,除非它是完全有意的:json = json.load(teststr)
< -- 不好。
这会覆盖您刚刚导入的模块,使以后对该模块的任何调用实际上都是对已创建的字典的调用。
要解决此问题,您可以在加载后使用另一个变量:
import json
teststr = '{"user": { "user_id": 2131, "name": "John", "gender": 0, "thumb_url": "sd", "money": 23, "cash": 2, "material": 5}}'
json_obj = json.loads(teststr)
或者您可以更改要导入的模块名称
import json as JSON
teststr = '{"user": { "user_id": 2131, "name": "John", "gender": 0, "thumb_url": "sd", "money": 23, "cash": 2, "material": 5}}'
json = JSON.loads(teststr)
或者您可以专门从模块中导入您想要使用的功能
from json import loads
teststr = '{"user": { "user_id": 2131, "name": "John", "gender": 0, "thumb_url": "sd", "money": 23, "cash": 2, "material": 5}}'
json = loads(teststr)
关于python - 属性错误 : 'str' object has no attribute 'loads' , json.loads(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38307724/