json字符串的基本介绍以及dump(s)与load的讲解
1.json字符串的基本介绍:
1)JSON的定义:
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
2)JSON支持的格式:
1.对象(字典)。使用花括号。
2.数组(列表)。使用方括号。
3.整形,浮点型,布尔型,null类型
4.字符串类型(必须使用双引号)
注意:json本质是个字符串。在python中内置就有json模块,直接导入即可。
2.将python对象dump(s)为json字符串:
1)dumps函数将目标对象一次全部转换(间接):
import json persons = [ { 'username':'aaa', 'age':18, 'country':'China' } , { 'user':'bbb', 'age':19, 'country':'China' } ] json_str = json.dumps(persons)
with open('persons.json','w',encoding='utf-8') as fp:
fp.write(json_str)
2)将 json 数据直接 dump 到文件中:
在 json 模块中,除了dumps函数,还有一个 dump函数可以传入一个文件的指针,直接将字符串 dump 到文件中。
import json persons = [ { 'username':'张三', 'age':18, 'country':'China' } , { 'user':'李四', 'age':19, 'country':'China' } ] with open('persons.json','w',encoding='utf-8') as fp: json.dump(persons,fp,ensure_ascili=False)
注意,当有中文字符时,需要给上编码(encoding='utf-8')以及把 dump() 中的 ensure_ascii= 参数改成 False (默认为Ture)
注意:在Pthon中,只有基本数据类型才能转成 json 格式的字符串。即,int float str list dict tuple。
3.将json字符串load(s)成python对象:
1)直接从文件中读取json:
with open('persons.json','r',encoding='utf-8') as fp: persons = json.load(fp) print(persons)
2)在python对象中读取:
json_str = '[{"username": "张三", "age": 18, "country": "China"}, ' \ '{"user": "李四", "age": 19, "country": "China"}]' persons = json.loads(json_str) print(persons)