我们在做工作中经常会使用到json模块,今天就简单介绍下json模块
什么是json
JSON ,全称为JavaScript Object Notation, 也就是JavaScript 对象标记,它通过对象和数组的组合米表示数据,构造简洁但是结构化程度非常高,是一种轻量级的数据交换格式。json模块在python中可以作为数据解析json
对象和数组
在JavaScript 语言中,一切都是对象。任何支持的类型都可以通过JSON来表示,例如字符串、数字、对象、数组等,但是对象和数组是比较特殊且常用的两种类型
对象 :它在JavaScript中是使用花括号{ }包裹起来的内容,数据结构为{ keyl : valuel,key2:value2}的键值对结构。在面向对象的语言中,key为对象的属性,value 为对应的值。键名可以使用整数和字符串来表示。值的类型可以是任意类型。
数组 :数组在JavaScript中是方括号[]包裹起来的内容,数据结构为[ ”java ” ,” javascript ”,"vb " ]的索引结构。在JavaScript中, 数组是一种比较特殊的数据类型,它也可以像对象那样使用键值对,但还是索引用得多。同样,值的类型可以是任意类型。
JSON对象格式
会发现和我们的字典格式是不是特别的一样
# 格式为{"name":"value"}
[{ " name " : " AnJing " , " age " : " 26 " }]
JSON简单使用
loads()方法
使用方法loads()将 json文字转化成json对象
# coding:utf-8 import json str = ''' [{ "name":"AnJing", "age":"26" }] ''' data = json.loads(str) print (data) print (type(data)) print (data[0][ ' name ' ]) # 通过下标进行选择 print (data[0].get( ' name ' )) 代码结果: [{ ' name ' : ' AnJing ' , ' age ' : ' 26 ' }] < class ' list ' > AnJing AnJing
注意:在使用loads的时候json字符串必须要用双引号表示,否则会报错
(json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 3 column 5 (char 12)
)
dumps()方法
使用dumps()方法将json转换成字符串
# coding:utf-8 import json str = [{ " name " : " AnJing " , " age " : " 26 " }] print (type(str)) data = json.dumps(str) print (type(data)) print (data) 代码结果: < class ' list ' > < class ' str ' > [{ " name " : " AnJing " , " age " : " 26 " }]
另外如果想要保存的文字好看点,我们可以增加一个参数indent,代表缩进字符个数,已经可以写入中文的时候不会乱码,加入ensure_ascii=False
# coding:utf-8 import json str = [{ " name " : " 安静 " , " age " : " 26 " , " 性别 " : " 男 " }] # indent 表示缩进 # ensure_ascii=False 表示写入中文 with open( ' 123.json ' , ' w ' ,encoding= ' utf-8 ' )as f: f.write(json.dumps(str,indent =2,ensure_ascii= False)) 代码结果: [ { " name " : " 安静 " , " age " : " 26 " , " 性别 " : " 男 " } ]
load()方法
将文件内容转换成json数据
# 导入json模块 import json str = [{ " name " : " AnJing " , " age " : " 26 " }] # 通过dumps写入文件中 with open( ' 123.json ' , ' w ' )as f: f.write(json.dumps(str)) # 通过load将数据转换成json data = json.load(open( ' 123.json ' , ' r ' )) print (data) 代码结果: [{ ' name ' : ' AnJing ' , ' age ' : ' 26 ' }]
dump()方法
将json数据写入到文件中
# coding:utf-8 import json str = [{ " name " : " AnJing " , " age " : " 26 " }] # 通过dump写入到json中 json.dump(str,open( ' 123.json ' , ' w ' )) # 通过load查看是否写入 data = json.load(open( ' 123.json ' , ' r ' )) print (data) 代码结果: [{ ' name ' : ' AnJing ' , ' age ' : ' 26 ' }]
简单的写了写json模块的使用方法,以及json的简单介绍,欢迎继续补充没有涉及到的知识。
感觉写的对您有帮助的,点个关注不迷路~~~~