gpt4 book ai didi

python json.dumps() json.dump()的区别详解

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章python json.dumps() json.dump()的区别详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

以前写的很简单,只有几句话,最近发现本文是本博客阅读量最大的一篇文章,觉得这样有种把人骗进来的感觉,于是又细化了一些。如果还有不好的地方,欢迎指出.

首先说明基本功能:

dumps是将dict转化成str格式,loads是将str转化成dict格式.

dump和load也是类似的功能,只是与文件操作结合起来了.

看代码实例:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
In [ 1 ]: import json
 
In [ 2 ]: a = { 'name' : 'wang' , 'age' : 29 }
 
In [ 3 ]: b = json.dumps(a)
 
In [ 4 ]: print b, type (b)
{ "age" : 29 , "name" : "wang" } < type 'str' >
 
In [ 11 ]: json.loads(b)
Out[ 11 ]: {u 'age' : 29 , u 'name' : u 'wang' }
 
In [ 12 ]: print type (json.loads(b))
< type 'dict' >

然后再看dump和dumps的区别,见代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
In [ 1 ]: import json
 
In [ 2 ]: a = { 'name' : 'wang' , 'age' : 29 }
 
In [ 3 ]: b = json.dumps(a)
 
In [ 4 ]: print b, type (b)
{ "age" : 29 , "name" : "wang" } < type 'str' >
 
In [ 5 ]: c = json.dump(a)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeError                 Traceback (most recent call last)
<ipython - input - 5 - 92dc0d929363 > in <module>()
- - - - > 1 c = json.dump(a)
 
TypeError: dump() takes at least 2 arguments ( 1 given)

这里提示我们少一个参数,我们看一下帮助文件(iPyhton中可以直接使用help(json.dumps)来查看帮助文件):

dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding='utf-8', default=None, sort_keys=False, **kw) Serialize ``obj`` to a JSON formatted ``str``.  。

dump(obj, fp, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding='utf-8', default=None, sort_keys=False, **kw) Serialize ``obj`` as a JSON formatted stream to ``fp`` (a ``.write()``-supporting file-like object).  。

简单说就是dump需要一个类似于文件指针的参数(并不是真的指针,可称之为类文件对象),可以与文件操作结合,也就是说可以将dict转成str然后存入文件中;而dumps直接给的是str,也就是将字典转成str.

例子见代码(注意文件操作的一些小细节):

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
In [ 1 ]: import json
 
In [ 2 ]: a = { 'name' : 'wang' }
 
In [ 3 ]: fp = file ( 'test.txt' , 'w' )
 
In [ 4 ]: type (fp)
Out[ 4 ]: file
 
In [ 5 ]: json.dump(a, fp)
 
In [ 6 ]: cat test.txt
 
In [ 7 ]: fp.close()
 
In [ 8 ]: cat test.txt
{ "name" : "wang" }
In [ 9 ]: json.load(fp)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueError                Traceback (most recent call last)
<ipython - input - 9 - 0064dabedb17 > in <module>()
- - - - > 1 json.load(fp)
 
/ usr / local / Cellar / python / 2.7 . 11 / Frameworks / Python.framework / Versions / 2.7 / lib / python2. 7 / json / __init__.pyc in load(fp, encoding, cls , object_hook, parse_float, parse_int, parse_constant, object_pairs_hook, * * kw)
   285
   286   """
- - > 287   return loads(fp.read(),
   288     encoding = encoding, cls = cls , object_hook = object_hook,
   289     parse_float = parse_float, parse_int = parse_int,
 
ValueError: I / O operation on closed file
 
In [ 10 ]: fp = file ( 'test.txt' , 'r' )
 
In [ 11 ]: json.load(fp)
Out[ 11 ]: {u 'name' : u 'wang' }

注:实际中dump用的较少.

到此这篇关于python json.dumps() json.dump()的区别详解的文章就介绍到这了,更多相关python json.dumps() json.dump()内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://www.cnblogs.com/fengff/p/11008353.html 。

最后此篇关于python json.dumps() json.dump()的区别详解的文章就讲到这里了,如果你想了解更多关于python json.dumps() json.dump()的区别详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com