【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' } |
【python】 json.dumps() json.dump()的区别的更多相关文章
- json.dumps(),json.loads(),json.dump(),json.load()方法的区别
1. json.dumps() json.dump()是将字典类型转化成字符串类型. import json dic = {'a':'1111','b':'2222','c':'3333','d':' ...
- python json.dumps() json.dump()的区别
以前写的很简单,只有几句话,最近发现本文是本博客阅读量最大的一篇文章,觉得这样有种把人骗进来的感觉,于是又细化了一些.如果还有不好的地方,欢迎指出. 首先说明基本功能: dumps是将dict转化成s ...
- python中json.dump() 和 json.dumps() 有那些区别?
JSON字符串用json.dumps, json.loads JSON文件名用json.dump, json.load 以下内容摘自:<Python Cookbook> json 模块提供 ...
- Python中json.dump() 和 json.dumps()的区别
JSON字符串用json.dumps, json.loads JSON文件名用json.dump, json.load 以下内容摘自:<Python Cookbook> json 模块提供 ...
- json.dumps与json.dump的区别 json.loads与json.load的区别
json.dumps是将一个Python数据类型列表进行json格式的编码解析, 示例如下: >>> import json #导入python 中的json模块>>&g ...
- 细说【json&pickle】dumps,loads,dump,load的区别
1 json.dumps() json.dumps()是将字典类型转化成字符串类型. import json name_emb = {'a':'1111','b':'2222','c':'3333', ...
- Python中的Json模块dumps、loads、dump、load函数介绍
Json模块dumps.loads.dump.load函数介绍 1.json.dumps() json.dumps() 用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json ...
- python json.dumps()函数输出json格式,使用indent参数对json数据格式化输出
在python中,要输出json格式,需要对json数据进行编码,要用到函数:json.dumps json.dumps() :是对数据进行编码 #coding=gbkimport json dict ...
- Python 3 操作json 文件
背景 json 是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成. 一般表现形式是一个无序的 键值对 的集合. 资料: 官方文档: https://docs.python.org ...
随机推荐
- 小程序swiper不显示图片
按照文档上的代码运行后,发现图片不显示 解决办法: app.wxss文件 align-items: center;这句话删除了,运行 OK!
- harbor中碰到的问题
harbor部署整体比较简单,但是就是这么简单的东西稍微改变点配置文件就会有不小的问题 1.问题1 部署harbor1.6发现web界面删除的镜像在push一遍上去后,镜像大小为0 且无法删除,这个问 ...
- 日常工作linux常用命令
1:cp 复制文件/文件夹 cp -r 源目录 目标目录 2:mv 文件重命名 mv 源文件/源目录 目标文件/目标目录 3:du -sh 查看当前目录大小 du -l 查看当前目录下文件大小 d ...
- 迷你MyBank
该迷你MyBank,存贮是用对象数组来存贮的,所以比较简单,容易理解,适合新手.. 一.创建chengyuan类,在其中声明所需的成员变量: public class chengyuan { //该类 ...
- Layabox进阶之资源加载
资源加载失败,图片资源默认类型是image 如果是sprite可能找不到. 资源的加载顺序,场景被加载出来时,要判断该场景的资源是否都已经加载到. 点击A界面弹出来B界面,A界面的资源要在B界面之前加 ...
- jquery和vue分别对input输入框手机号码格式化(344)
jQuery function fomatterTel(val, old) {//val: 当前input的值,old: input上次的值 var str = ""; var t ...
- css3圆角矩形、盒子阴影
css3圆角矩形 div{ width: 200px; height: 200px; border: #f00 solid 1px; margin-bottom: 10px; } 1.设置 borde ...
- labview在编写程序框图中遇到的一些布尔按钮控制布尔指示灯问题
上图布尔控件按下,数据0x04成功发送给下位机,布尔灯不亮. ............... ............. ........... 下图布尔控件按下, ...
- R语言绘图:时间序列分析 ggplot2绘制ACF PACF
R语言真是博大精深 方法一 Acf(gold[,2], type = "correlation",lag.max = 100) Acf(gold[,2], type = " ...
- 【Keras案例学习】 sklearn包装器使用示范(mnist_sklearn_wrapper)
import numpy as np from keras.datasets import mnist from keras.models import Sequential from keras.l ...