json.loads() 返回一个字符串

Zid*_*Zid 5 python json python-3.x python-3.6

为什么 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))
Run Code Online (Sandbox Code Playgroud)

输出:

<class 'str'>
Run Code Online (Sandbox Code Playgroud)

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

Seb*_*n D 6

两点:

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

输出

字典

编辑

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

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