一、什么是JSON?
JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度。
JSON就是一串字符串 只不过元素会使用特定的符号标注。
{} 双括号表示对象
[] 中括号表示数组
"" 双引号内是属性或值
: 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)
1.1JSON概念及特点
- JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
- JSON 是轻量级的文本数据交换格式
- JSON 独立于语言,JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。
- JSON 具有自我描述性,更易理解
JSON 比 XML 更小、更快,更易解析。具体的JSON和XML的比较,可以参考博客:
JSON与XML的区别比较
1.2 JSON语法规则
JSON 语法是 JavaScript 对象表示法语法的子集。
- 数据在名称/值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
JSON的数据保存在 名称/值 对中。
名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值,例如:
“Name” : “SunPro”
JSON的值的类型有:
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在方括号中)
- 对象(在花括号中)
- null
python使用Json
使用 JSON 函数需要导入 json 库:import json。
json.dumps 将 Python 对象编码成 JSON 字符串
json.loads 将已编码的 JSON 字符串解码为 Python 对象
Json 模块提供了四个方法: dumps、dump、loads、load
dumps 和 dump:
dumps只完成了序列化为str,
dump必须传文件描述符,将序列化的str保存到文件中
存json文件,将python对象存到json格式的文件中不再用dumps,而是要用dump:
dic_info = {'name':'Elizabeth', 'husband':'达西', 'age':22}
filew = open ('Elizabeth.json', 'w', encoding='utf-8')
json.dump(dic_info, filew)
filew.close()
loads 和 load
loads 只完成了反序列化,
load 只接收文件描述符,完成了读取文件和反序列化
读取json文件,从json文件中读取内容存入python对象,不再用loads而是要用load:
filer = open ('Elizabeth.json', 'r', encoding='utf-8')
Elizabeth = json.load(filer)
filer.close()
遍历json
data = open('..\\student.json','r').read() jsondata = json.loads(data) for key in jsondata: print(jsondata[key])