首页 > 解决方案 > json.loads() 返回一个字符串

问题描述

为什么 json.loads() 返回一个字符串?这是我的代码:

import json

d = """{
    "reference": "123432",
    "business_date": "2019-06-18",
    "final_price": 40,
    "products": [
        {
            "quantity": 4,
            "original_price": 10,
            "final_price": 40,
        }
    ]
}"""

j = json.loads(json.dumps(d))
print(type(j))

输出:

<class 'str'>

它不应该返回一个json对象吗?这里需要什么改变?

标签: pythonjsonpython-3.xpython-3.6

解决方案


两点:

  1. 您的products密钥中有错字:"final_price": 40,应该是"final_price": 40(不带逗号)
  2. j应该json.loads(d)

输出

听写

编辑

这篇文章解释了为什么在 json 对象中不能有尾随逗号的原因你可以在 JSON 对象中使用尾随逗号吗?

不幸的是,JSON 规范不允许尾随逗号。有一些浏览器允许它,但通常您需要担心所有浏览器。


推荐阅读