• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
demoFootman
博客园    首页    新随笔    联系   管理    订阅  订阅

python_json序列化和反序列化

序列化

import json

dic = {'name':'shb', 'age':'28'}

print(json.dumps(dic))

反序列化;json.loads()

dic = {'name':'shb', 'age':'28'}
print(json.dumps(dic))

dic2 = json.loads(json.dumps(dic))
print(dic2)
打印:
{"name": "shb", "age": "28"}
{'name': 'shb', 'age': '28'}

将 类 序列化:方法一

lass Student(object):
    def __init__(self, name, age, score):
        self.name = name
        self.age = age
        self.score = score

def student2dict(std):
        return {
            'name': std.name,
            'age': std.age,
            'score': std.score
        }
s = Student('Bob', 20, 88)


print (json.dumps(s, default=student2dict))
打印;
{"name": "Bob", "age": 20, "score": 88}

方法二:

lambda obj: obj.__dict__          会将任意的对象,转换成字典的方式

sort_keys=True                    会按照字典中的键来按照ASCII方式来排序

indent=4                          会按照键值对以间隔4来直观的显示

class Student(object):
    def __init__(self, name, age, score):
        self.name = name
        self.age = age
        self.score = score
s = Student('Bob', 20, 88)
print(json.dumps(s, default=lambda  obj: obj.__dict__, sort_keys=True, indent=4))
打印;
{
    "age": 20,
    "name": "Bob",
    "score": 88
}

 

这不是开往幼儿园的车~
posted @ 2018-08-06 17:31  demoFootman  阅读(1039)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3