Python json.dumps和json.load之间有什么区别?

Python json.dumps和json.load之间有什么区别?,python,json,Python,Json,json.dumps和json.load之间有什么区别 根据我的理解,一个将JSON加载到字典中,另一个加载到对象中。JSON加载->从表示JSON对象的字符串返回对象 json dumps->返回表示对象中json对象的字符串 加载和转储->读取/写入文件,而不是字符串获取对象并生成字符串: >>> a = {'foo': 3} >>> json.dumps(a) '{"foo": 3}' 将获取类似文件的对象,从该对象读取数据,并使用该字符串创建对象:

json.dumps
json.load
之间有什么区别


根据我的理解,一个将JSON加载到字典中,另一个加载到对象中。

JSON加载->从表示JSON对象的字符串返回对象

json dumps->返回表示对象中json对象的字符串

加载和转储->读取/写入文件,而不是字符串

获取对象并生成字符串:

>>> a = {'foo': 3}
>>> json.dumps(a)
'{"foo": 3}'
将获取类似文件的对象,从该对象读取数据,并使用该字符串创建对象:

with open('file.json') as fh:
    a = json.load(fh)
请注意,和
加载
在文件和对象之间转换,而
转储
并在字符串和对象之间转换。您可以将
s
-less函数看作
s
函数的包装:

def dump(obj, fh):
    fh.write(dumps(obj))

def load(fh):
    return loads(fh.read())

>json dumps->返回一个表示dict中json对象的字符串。这很接近,但它不一定是传递给json.dumps()的dict。你可以传递一个列表、一个字符串或一个布尔值。这对我的理解很有帮助。但我还是有点困惑,因为我认为所有东西都是Python中的对象。字符串本身不是一个对象吗?那你怎么能在两者之间转换呢?对不起,这个愚蠢的问题。我使用的是
object
,意思是“某种类型的东西,而不是
str
”。像
''foo'
这样的字符串被解码为Python
str
object
'foo'
;像
“[1,2,3]”
这样的字符串被解码到Python列表
[1,2,3]
,等等
dumps()
-编码到JSON对象
dump()
-编码字符串写入文件
load()
-解码JSON字符串
load()
-读取JSON文件时解码