python-json与pickle数据序列化

json序列化

info = {
    'name':'alex',
    'age':22
}
f = open("test.txt",'w')
f.write(str(info))   #字典不能直接存,先转换成字符串
f.close()
import json
info = {
    'name':'alex',
    'age':22
}
f = open("test.txt",'w')
f.write(json.dumps(info))
f.close()

json反序列化

f = open("test.txt",'r')
data = eval(f.read())   #读出来也是字符串,要转换成字典
f.close()
print(data['age'])
import json
f = open("test.txt",'r')
data = json.loads(f.read())
print(data['age'])

pickle可以序列化所有的数据类型

import pickle
info = {
    'name':'alex',
    'age':22
}
f = open("test.txt",'wb')
pickle.dump(info,f)   #f.write(pickle.dumps(info))
f.close()
import pickle
f = open("test.txt",'rb')
data = pickle.load(f)   #data = pickle.loads(f.read())
print(data['age'])

pickle只在python本语言中能用
java只认识json
写程序只dump一次,load一次

json文件的读取

#导入模块
import json
# 将json对象转成字典 -> 进行解码
with open("hm.json", "r", encoding="utf-8") as f:
    # 获取文件中数据 -> 字典
    new_dict = json.load(f)
    # 查看类型
    print(type(new_dict))  # <class 'dict'>
    # 获取名字
    print(new_dict["name"])
    # 获取年龄
    print(new_dict["age"])
    # 获取学号
    print(new_dict["no"])

json文件的写入

#导入模块
import json
# 定义一个字典
my_dict = {"name": "老王", "age": 30, "no": "007"}
# 将字典转成json -> 进行编码
json_str = json.dumps(my_dict)
# 打印json字符串
print(type(json_str))  # <class 'str'>

# 把json数据写入到文件中
with open("hm.json", "w", encoding="utf-8") as f:
    f.write(json_str)

posted @ 2019-12-06 14:08  忆梦,惊梦  阅读(262)  评论(0)    收藏  举报