Python复杂对象转JSON

Python复杂对象转JSONPython复杂对象转JSON在Python对于简单的对象转json还是比较简单的,如下:importjsond={‘a’:’aaa’,’b’:[‘b1′,’b2′,’b3′],’c’:100}json_str=json.dumps(d)printjson_str对于复杂对象,可以使用下面的方法来实现,比如:importjsonclassCustomer:

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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"
    }
]

转载请以链接形式标明本文地址
本文地址:http://blog.csdn.net/kongxx/article/details/51563720

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/193572.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • lxml与pyquery解析html

    lxml与pyquery解析htmllxml首先来了解一下lxml,很多常用的解析html的库都用到了lxml这个库,例如BeautifulSoup、pyquery。下面我们介绍一下lxml关于html解析的3个Element。_Element_Element获取fromlxmlimportetreetext=”'<div><ul><licla…

  • 学术应用使用node-http-proxy集成谷歌学术「建议收藏」

    学术应用使用node-http-proxy集成谷歌学术「建议收藏」搞科研的同学肯定离不开谷歌学术,谷歌学术搜索是文献搜索下载一大利器。之前实验室开发了一款学术应用,遗留了历史问题,就是没有解决文献搜索的功能,而这个任务最后落在我的身上。我采用的方案就是集成谷歌学术,但是国内的网络环境,你懂的,自然状态下根本就访问不了谷歌学术的,你得翻墙才能访问。你不能期望使用你开发的学术应用都能翻墙访问谷歌学术(虽然搞科研的人电脑翻墙软件肯定都准备好了!),所以呢我还要给谷歌学术

  • 语义分割和实例分割概念

    语义分割和实例分割概念有些概念容易混淆,整理一下,备注记忆。一、概念区分1.图像分类(imageclassification)识别图像中存在的内容;2.物体识别和检测(objectrecognitionanddetection)识别图像中存在的内容和位置(通过边界框);3.语义分割(semanticsegmentation)识别图像中存在的内容以及位置(通过查找属于它的所有像素…

  • 最小化类和成员的訪问能力

    最小化类和成员的訪问能力

  • Source Insight 3.5 简介

    Source Insight 3.5 简介SoureInsight3.5

  • IDEA 如何快速创建 Springboot 项目[通俗易懂]

    IDEA 如何快速创建 Springboot 项目[通俗易懂](1)打开IDEA,左上角选择:File->New->Project(2)首选选择弹窗左侧的SpringInitializr,然后选好择你的JDK,点击Next。(3)填写并选择:1,2处:是Maven工程的两个属性唯一标识,随意填。3处:类型选择Maven项目4处:语言选择Java5处:打包方式选择Jar6处:Java版本选择81-6处确定好后,选择Next。(4)左侧选择Web后,勾选SpringWe…

    2022年10月11日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号