序列化之pickle和json的使用练习

"""
# pickle可以很方便地序列化所有对象。不过json作为更为标准的格式,具有更好的可读性(pickle是二进制数据)和跨平台性。是个不错的选择。
# json使用的四个函数名和pickle一致。

# 内存中的序列化:
import json

# dic = {'age': 23, 'job': 'student'}
# dic_str = json.dumps(dic, indent=4)
# print(type(dic_str), dic_str)
# # out: <class 'str'> {"age": 23, "job": "student"}
#
# dic_obj = json.loads(dic_str)
# print(type(dic_obj), dic_obj)
# print(dic_obj['age'])
# # out: <class 'dict'> {'age': 23, 'job': 'student'}
#
# dic_obj = json.loads("[2,3,4,5,6]")  # 偏方
# print(type(dic_obj), dic_obj)

# json文件的序列化:


dic = {'user': [{'name': 'admin1', 'password': '123456'}, {'name': 'admin2', 'password': '000000'}]}
with open('abc.json', 'w', encoding='utf-8') as f:
    json.dump(dic, f, indent=4)

with open('abc.json', 'r', encoding='utf-8') as f:
    obj = json.load(f)
print(obj)
# print(dic.get("user")[0])
for i in dic.get("user"):
    print(i.get('name'), i.get('password'))
# 迭代出列表中的数据
for j in range(len(dic.get("user"))):
    print(dic.get("user")[j].get('name'), dic.get("user")[j].get('password'))

# print(dic.get("user")[0].get('name'), dic.get("user")[0].get('password'))


# 处理不标准json数据
import demjson
import json
d = "{title:'小阿三的女人',id:'32',rate:'7.8'}"
# 不标准的json不能解析
# data = json.loads(d)
data = demjson.decode(d)
print(data)
print(data['title'])

参考博文

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值