python - 属性错误 : 'str' object has no attribute 'loads' , json.loads()

标签 python json

片段

    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/

相关文章:

Python变量赋值给一个函数

Python O365 发送邮件

javascript - 根据if条件选择ajax url

php - 如果数组发生变化,如何发送警报?

Python 分析、导入(特别是 __init__)似乎是花费最多时间的

python - 在python中搜索列表的最快方法

java - org.json.JSONException : No value for status Android Parsing

c# - 如何使用 Newtonsoft.Json 反序列化空 JSON 对象?

python - 如何在Python中访问H2O中混淆矩阵的元素?

json - 在 PostgreSQL 中基于 JSON 文件创建表