import json
# json 是 js 下的内容各个语言交流的数据交换方式
# 字典
dict1 = {'name': 'joe', 'age': '18'}
data = json.dumps(dict1) # 加载进去 序列化 数据可以看到
f = open('json_text', 'w')
f.write(data)
f.close()
# 函数 不可json序列化 可以使用pickle 下面序列化时会报错
# def foo():
# print('ok')
#
#
# data = json.dumps(foo)
#
# f = open('json_text', 'w')
# f.write(data)
# f.close()
要点:
- json.dumps(dict) 将字典加载,进行序列化
- open('a.txt','w') 写入文件
import json
f = open('json_text', 'r')
data = f.read()
data = json.loads(data) # 将数据下载回来 成字典
print(data['name'])
print(data)
要点:
- json.loads(data) 将数据下载,成字典
- data['name'] 可以以字典方式操作
# dumps() 与 dump() 对比 dump 更简洁
dict2 = {'name': 'smith', 'age': '108'}
f2 = open('json_text2', 'w')
# data = json.dumps(dict2)
# f.write(data)
json.dump(dict2, f2) # 本句等价于 上面两行被注释掉的
f.close()
dumps() 与 dump() 函数比较
要点:
json.dump(dict,fd) 等价于 data = json.dumps(dict) , fd.write(date) 其中fd为文件句柄
# loads() 与 load() 函数的区别
f2 = open('json_text2', 'r')
# data = f.read()
# data = json.loads(data)
data = json.load(f2) # load() 函数直接 简化了上面两行数据
print(data['name'])
print(data)
loads() 与 load() 函数比较
要点:
json.load(fd) 等价于 data = f.read() , data = json.loads(data)