json.dumps和str()有什么区别?

Phi*_*hil 7 python python-2.7

json.dumps(..)和之间有什么区别str(..)

他们不是都将json转换成字符串吗?

Joe*_*ett 7

在Python的(我相信大多数的)实现,不,事实上,str(object)包在单引号,这是一个字符串不是有效的JSON.

一个例子:

In [17]: print str({"a": 1})
{'a': 1}
Run Code Online (Sandbox Code Playgroud)

str(boolean) 也是无效的JSON:

In [18]: print str(True)
True
Run Code Online (Sandbox Code Playgroud)

__str__但是,可以在用户定义的类中重写,以确保对象返回自己的JSON表示.