json序列化与反序列化
序列化:dumps()/dump(),将python中字典类型的对象序列化后,转化成json格式的字符串数据;
反序列化:loads()/load(),将json格式字符串转化成python中的字典对象'''
dumps():将python对象转换成json格式的字符串对象
# -*-encoding='utf-8'-*-
import requests
import json
# 转换字典对象
d = {'name':'张三','age':'18'} #字典
print(json.dumps(d,ensure_ascii=False)) # ensure_ascii=False 确保编码不为ascii码
# 转换字符串对象
str ='字符串'
print(json.dumps(str,ensure_ascii=False))
# 转换整数对象
i =12345677789 # 整数
print(json.dumps(i))
# 转换列表对象
l = ['1','2','3','4']
print(json.dumps(l))
# 转换元组对象
t = ('元组1','元组2','元组3')
print(json.dumps(t,ensure_ascii=False))
dump()方法,将python对象序列化转换成json格式文件并保存到json文件中
a = {'name':'Tom','age':20}
b = {'name':'小娟','age':18}
with open("package.json","w",encoding='utf-8')as f:
f.write(json.dumps(a,indent=2))
json.dump(a,f,indent=2) # 将python对象序列化转换成json格式文件并保存到json文件中
with open('package.json','r')as p:
print(p.read())
loads()反序列化,将json格式字符串对象转化成python对象
# 转换字典对象
j ='{"name":"张三","age":"21"}' # json格式字符串对象
print(json.loads(j))
# 转换列表对象
L ='["1", "2", "3", "4"]' # list格式的字符串对象
print(json.loads(L))