Python实现复杂对象转JSON的方法示例

发布时间 - 2026-01-11 02:00:15    点击率:

本文实例讲述了Python实现复杂对象转JSON的方法。分享给大家供大家参考,具体如下:

在Python对于简单的对象转json还是比较简单的,如下:

import json
d = {'a': 'aaa', 'b': ['b1', 'b2', 'b3'], 'c': 100}
json_str = json.dumps(d)
print json_str

对于复杂对象,可以使用下面的方法来实现,比如:

import json
class Customer:
  def __init__(self, name, grade, age, home, office):
    self.name = name
    self.grade = grade
    self.age = age
    self.address = Address(home, office)
  def __repr__(self):
    return repr((self.name, self.grade, self.age, self.address.home, self.address.office))
class Address:
  def __init__(self, home, office):
    self.home = home
    self.office = office
  def __repr__(self):
    return repr((self.name, self.grade, self.age))
customers = [
    Customer('john', 'A', 15, '111', 'aaa'),
    Customer('jane', 'B', 12, '222', 'bbb'),
    Customer('dave', 'B', 10, '333', 'ccc'),
    ]
json_str = json.dumps(customers, default=lambda o: o.__dict__, sort_keys=True, indent=4)
print json_str

结果如下

[
  {
    "address": {
      "home": "111",
      "office": "aaa"
    },
    "age": 15,
    "grade": "A",
    "name": "john"
  },
  {
    "address": {
      "home": "222",
      "office": "bbb"
    },
    "age": 12,
    "grade": "B",
    "name": "jane"
  },
  {
    "address": {
      "home": "333",
      "office": "ccc"
    },
    "age": 10,
    "grade": "B",
    "name": "dave"
  }
]

PS:关于json操作,这里再为大家推荐几款比较实用的json在线工具供大家参考使用:

在线JSON代码检验、检验、美化、格式化工具:
http://tools./code/json

JSON在线格式化工具:
http://tools./code/jsonformat

在线XML/JSON互相转换工具:
http://tools./code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools./code/jsoncodeformat

在线json压缩/转义工具:
http://tools./code/json_yasuo_trans

更多Python相关内容感兴趣的读者可查看本站专题:《Python操作json技巧总结》、《Python编码操作技巧总结》、《Python图片操作技巧总结》、《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。


# Python  # 对象  #   # JSON  # python实现class对象转换成json/字典的方法  # Python3实现的字典、列表和json对象互转功能示例  # Python字典数据对象拆分的简单实现方法  # Python字典对象实现原理详解  # Python对象转JSON字符串的方法  # Python实现对象转换为xml的方法示例  # Python之dict(或对象)与json之间的互相转化实例  # Python对象转换为json的方法步骤  # python对象转字典的两种实现方式示例  # 操作技巧  # 转换工具  # 进阶  # 相关内容  # 感兴趣  # 数据结构  # 给大家  # 可以使用  # 来实现  # 所述  # 几款  # 程序设计  # 使用技巧  # 再为  # 编程技巧  # 讲述了  # def  # Customer  # grade  # print 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel怎么上传文件_Laravel图片上传及存储配置  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  iOS正则表达式验证手机号、邮箱、身份证号等  简单实现jsp分页  西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  大型企业网站制作流程,做网站需要注册公司吗?  韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南  使用PHP下载CSS文件中的所有图片【几行代码即可实现】  如何快速搭建二级域名独立网站?  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  如何在局域网内绑定自建网站域名?  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  创业网站制作流程,创业网站可靠吗?  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  Bootstrap CSS布局之列表  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  JS实现鼠标移上去显示图片或微信二维码  如何在Ubuntu系统下快速搭建WordPress个人网站?  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  Laravel如何实现API版本控制_Laravel版本化API设计方案  javascript基于原型链的继承及call和apply函数用法分析  DeepSeek是免费使用的吗 DeepSeek收费模式与Pro版本功能详解  如何登录建站主机?访问步骤全解析  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  如何在企业微信快速生成手机电脑官网?  如何在服务器上三步完成建站并提升流量?  Laravel Docker环境搭建教程_Laravel Sail使用指南  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  百度浏览器如何管理插件 百度浏览器插件管理方法  如何快速重置建站主机并恢复默认配置?  Laravel如何实现图片防盗链功能_Laravel中间件验证Referer来源请求【方案】  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  深入理解Android中的xmlns:tools属性  高防服务器如何保障网站安全无虞?  js实现获取鼠标当前的位置  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  如何挑选优质建站一级代理提升网站排名?  智能起名网站制作软件有哪些,制作logo的软件?  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  Android自定义控件实现温度旋转按钮效果  JavaScript Ajax实现异步通信  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)