Python中怎么对齐打印对象属性
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,Python中怎么对齐打印对象属性,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。对齐打印对象属性print 输出对象 d
千家信息网最后更新 2025年02月01日Python中怎么对齐打印对象属性
Python中怎么对齐打印对象属性,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
对齐打印对象属性
print 输出对象 dict 全挤在一行,很难看。因此希望输出类似 json 对齐的方式。
基本的思想是转成 json 格式再输出。随便一搜,找到如下代码,普通情况下可用:
def obj_to_json(): stu = Student(28, 'male', '13000000000', '123@qq.com') print(type(stu)) #print(stu) stu = stu.__dict__ # 将对象转成dict字典 print(type(stu)) # print(stu) j = json.dumps(obj=stu, indent=4) print(j)
但有些对象中会包含一些特殊属性,如另外一个对象,则用此法会报错:
TypeError: Object of type xxx is not JSON serializable
其实就是 JSON 不支持这种对象。我们可以自定义处理特殊对象的方法,完整代码如下:
# encoding:utf-8# author: overimport jsonfrom datetime import datetime, dateclass Student(object): def __init__(self, age, sex, mobile, date): self.age = age self.sex = sex self.mobile = mobile self.date = date# 扩展 json 无法解析的类型class ComplexEncoder(json.JSONEncoder): def default(self, obj): if isinstance(obj, datetime): # return obj.strftime('%Y-%m-%d %H:%M:%S') return str(obj) elif isinstance(obj, date): # return obj.strftime('%Y-%m-%d') return str(obj) else: try: return json.JSONEncoder.default(self, obj) except Exception as e: print('type not support: '+str(obj)) # 默认的处理不了直接强转字符串 return str(obj)# json 对齐方式输出对象所有属性,方便查看def printJson(obj): if hasattr(obj,'__dict__'): obj = obj.__dict__ # ensure_ascii=False 中文不变成百分符 # indent 缩进行增加的空格数 j = json.dumps(obj, cls=ComplexEncoder, ensure_ascii=False, indent=4) print(j)if __name__ == '__main__': stu = Student(28, 'male', '13000000000', datetime.now()) printJson(stu)
输出:
{
"age": 28,
"sex": "male",
"mobile": "13000000000",
"date": "2019-07-07 14:43:51.466416"
}
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
对象
输出
属性
特殊
代码
方式
处理
帮助
支持
普通
清楚
难看
一搜
一行
内容
字典
字符
字符串
对此
就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
实验设备管理数据库系统
昆明的互联网科技公司
查看gp数据库节点状态
焦作市网络安全事故
服务器名称打不开
霍尔果斯创酷网络技术公司
计算机网络技术能考监理吗
软件开发座谈会
服务器安全缺陷
南昌网络安全实战特训营培训机构
济宁学院计算机系网络安全专业
北邮数据库原理应用
下面什么是流行的数据库技术
厦门汽车备件管理软件开发
MySQL数据库不支持的功能是
设置固定的dns服务器上不了网
软件开发和软件研发有啥区别
简单网络安全宣传栏设计
达梦数据库 sql
亚马逊海外购服务器
f2812的软件开发环境
青岛西海岸服务器
天津常见软件开发代理价钱
简笔画网络安全小装饰
游戏账号交易数据库设计
大学考试access数据库
管理系统数据库的实现
网络安全复习题 重要性
中国网络安全中心是干什么的
珠海应用软件开发设计