4个方法
jshon这个模块就是做序列化处理的,目前我所知道的是,一般用于文件传输。网络传输,不同语言写的代码之间的传输(以待后续补充 更正)
主要用到json模块的四种方法
1. json.dumps()
通过jshon的dumps的模块可以把特定的对象序列化处理为字符串
一般用于发送数据
json.dumps()用于将dict类型的数据转成str,因为如果直接将dict类型的数据写入json文件中会发生报错,因此在将数据写入时需要用到该函数。
import json
l1 = [1, 2, 3, 454]
d1 = {'k1': 'v1'}
ret = json.dumps(l1)
print(type(ret), ret)
ret = json.dumps(d1)
print(type(ret), ret)
输出结果为:
<class 'str'> [1, 2, 3, 454]
<class 'str'> {"k1": "v1"}
若在数据写入json文件时,未先进行转换,报错如下
2. json.loads()
通过反序列化把具有不同类型特征的字符串转换成对应的类型
一般用于接收数据
把其他类型的对象转为Python对象
Python对象包括:
所有Python基本数据类型,列表,元组,字典,自己定义的类,等等等等,当然不包括Python的字符串类型,把字符串或者文件中的字符串转为字符串会报错的
日常工作中最常见的就是把字符串通过json.loads转为字典
import json
l1 = '[1,2,3,4]'
d1 = '{"k1":"v1"}']
ret = json.loads(l1)
print(ret,type(ret))
ret = json.loads(d1)
print(ret,type(ret))
输出结果为:
[1, 2, 3, 4] <class 'list'>
{'k1': 'v1'} <class 'dict'>
注意:
这里如果外形不是list或者dict的形状,则不会转换成功的
上面的dumps和loads方法都在内存中转换,下面的dump和load的方法会多一个步骤,dump是把序列化后的字符串写到一个文件中,而load是从一个一个文件中读取文件
3. json.dump
json.dump()用于将dict类型的数据转成str,并写入到json文件中。
import json
d1 = {'name':'foot'}
#这一步就会把d1做序列化处理后的字符串写到db这个文件中
json.dump(d1,open('db','w'))
d1 = json.load(open('db','r'))
print(d1,type(d1))
输出为:
{'name': 'foot'} <class 'dict'>
下面两种方法都可以将数据写入json文件
4. json.load()
json.load()用于从json文件中读取数据。