1. JSON介绍
首先介绍一下JSON文件格式,JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。
它的格式是以大括号区分来存储数据,json和dict非常类似,都是key-value的形式,而且json和dict也可以非常方便的通过dumps和loads
互转,但是它们之间还是有区别的:
json:是一种数据格式,是纯字符串。可以被解析成python的dict或其他形式。
dict:是一个完整的数据结构,是对hash table这一数据结构的实现,是一套从存储到提取都封装好的方案。它使用内置的hash函数来规划key对应的value的存储位置,从而获得O(1)的数据读取速度。
2. JSON库中 load()、dump()、loads()、dumps()用法简介:
首先我们若需要使用json库时,我们需要import json
1. load()
:读取json文件成字典类型数据
# 读取json文件内容,返回值是字典类型r
with open('./data.json','r',encoding='utf8')as fr:
json_data = json.load(fp)
print('这是文件中的json数据:',json_data)
# 这里是<class 'dict'>
print('这是读取到文件数据的数据类型:', type(json_data))
2. dump()
:字典写入到json文件
# 将字典类似数据写入到json文件中
dict1 = {'name': '张三', 'age': 21, 'sex': '男'}
with open('./person.json','a',encoding='utf8')as fw:
json.dump(dict1,fp,ensure_ascii=False)
# 如果ensure_ascii ' '为false,则返回值可以包含非ascii值,即可以表示汉字等
3. loads()
: 将json字符串转换成字典格式
# 以下是json字符串的形式
str1 = '{"name": "张三", "age": 18, "sex": "男"}'
with codecs.open("./data.json", 'r', encoding="utf-8") as fr:
# 按行读取json字符串,并转化为字典数据tmp
for line in fr.readlines():
tmp = json.loads(line)
4. dumps()
: 将字典数据转化为json格式
dict1 = {'name': '张三', 'age': 21, 'sex': '男'}
print('这是将字典转换之后的数据:',json.dumps(dict1,ensure_ascii=False))
# 转换后是json字符串类型 < class 'str'>
print('这是将字典转换之后的数据类型:',type(json.dumps(dict1,ensure_ascii=False))) # 如果ensure_ascii ' '为false,则返回值可以包含汉字等非ascii值。
总的来说,json库中主要用到的就是这几个方法,有什么别的常用的函数,大家评论提出呀!!!