您现在的位置是:首页 > 文章详情

「python」Json

日期:2018-08-19点击:359

Json

序列化(Serialization):将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON、XML等。我们把变量从内存中变成可存储或传输的过程称之为序列化

反序列化:从存储区域(JSON,XML)读取反序列化对象的状态,重新创建该对象。变量内容从序列化的对象重新读到内存里称之为反序列化

Json

json是什么呢?

是一种轻量级的数据交换格式。
完全独立于编程语言的文本格式来存储和表示数据。
简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,易于机器解析和生成,并有效地提升网络传输效率。

常用有2个方法,也是最基本的使用方法:

1、dumps:把字典转成json字符串

2、loads:把json字符串转成字典

import json test_dict = {'a':1, 'b':2} print(type(test_dict)) #把字典转成json字符串 json_text = json.dumps(test_dict) print(json_text) print(type(json_text)) #把json字符串转成字典 json_dict = json.loads(json_text) print(json_dict) print(type(json_dict))

输出结果为:

<class 'dict'> {"a": 1, "b": 2} <class 'str'> {'a': 1, 'b': 2} <class 'dict'>

还有有2个方法读写json文件的方法,与上述方法相比都少了s

1、dump:

2、load:

  • 把字典转成json字符串,并保存到文件中
import json import codecs test_dict = {'a':1, 'b':2} #把字典转成json字符串 json_text = json.dumps(test_dict) #把json字符串保存到文件 #因为可能json有unicode编码,最好用codecs保存utf-8文件 with codecs.open('1.json', 'w', 'utf-8') as f: f.write(json_text)
  • 从json文件中读取到字典中
import json import codecs #从文件中读取内容 with codecs.open('1.json', 'r', 'utf-8') as f: json_text = f.read() #把字符串转成字典 json_dict = json.loads(json_text)

上面代码,我们也可以用load和dump修改。

  • dump把字典转成json字符串并写入到文件
import json import codec test_dict = {'a':1, 'b':2} #把字典转成json字符串并写入到文件 with codecs.open('1.json', 'w', 'utf-8') as f: json.dump(test_dict, f)
  • load从json文件读取json字符串到字典
#coding:utf-8 import json import codecs #从json文件读取json字符串到字典 with codecs.open('1.json', 'r', 'utf-8') as f: json_dict = json.load(f)

相关参数

  • json.dumps 相关参数:

(1)sort_keys是告诉编码器按照字典排序(a到z)输出。

(2)indent参数根据数据格式缩进显示,读起来更加清晰
(3)separators参数的作用是去掉,,:后面的空格,从上面的输出结果都能看到”, :”后面都有个空格,这都是为了美化输出结果的作用,但是在我们传输数据的过程中,越精简越好,冗余的东西全部去掉,因
此就可以加上.

(4)skipkeys参数,在encoding过程中,dict对象的key只可以是string对象,如果是其他类型,那么在编码过程中就会抛出ValueError的异常。skipkeys可以跳过那些非string对象当作key的处理.

(5)输出真正的中文需要指定ensure_ascii=False

参考:廖雪峰python

http://yshblog.com/blog/104

原文链接:https://yq.aliyun.com/articles/626434
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章