json.load()与json.loads(),json.dump()与json.dumps()的区别,一目了然!!!
引言
很多时候,我们都会把json.load()与loads(),json.dump()与dumps()方法弄混淆,包括我也是,但是面试又会经常面试到。为了一次性把这两对方法的区别说清楚,我经过思考和对比,终于找到了一个行之有效的方法,在这里与大家分享下。
1.json.load()与json.loads()的区别:
两个方法相同点都是只有一个输入参数,输出也都是把其他对象的数据类型转化为python的数据类型。不同点是json.load()的输入是文件类型,也就是读取的是文件类型,而json.loads()的输入是字符串类型。举个简单的例子就是当你用with open()打开文件时,如果要使用json.loads()方法,就得先使用.read()或者readlines()把文件读出来后,才能使用。而如果用json.load()就可以直接读文件,并且得到的还是python数据类型,具体实现就不显示了。
2.json.dump()与json.dumps()的区别:
首先,两个方法的输入参数数量就不一样,json.dump()需要输入两个必须参数,json.dumps()是输入一个必须参数。其次是使用场景的区别,json.dumps()是用于将python对象转换为json字符串,返回转换后的json字符串。json.dump()适用于将python对象转换为字符串并且写入文件。说白了,就是json.dump()会自动写入文件。即当你使用with open()将内容写入文件时,不需要使用.write()方法了。
提示:json的数据都是双引号,而python的字典默认是单引号,所以将python写入文件时,最后先dumps()一下,再进行保存,或者使用.dump()直接保存。使用这两个方法保存时,会自动将单引号替换为双引号。