Python复杂对象转JSON

原创 2016年06月02日 09:15:55

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

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Python类对象的JSON序列化处理

不同的编程语言有不同的数据类型; 比如说: Python的数据类型有(dict、list、string、int、float、long、bool、None) Java的数据类型有(bool、char、b...

python中json/simplejson 序列化/dumps 自定义类型

why Decimal('0.00') is not JSON serializable!

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

【Python】python对象与json相互转换

在网络通信中,json是一种常用的数据格式,对于python来讲,将类转化为json数据以及将json数据转化为对象是一件非常容易的事情。 下面给出两者转化的方法 # -*- coding: UTF-...
  • leilba
  • leilba
  • 2016-02-12 09:29
  • 10968

python中自定义类对象json字符串化的方法

1. 用 json 或者simplejson 就可以 2.定义转换函数: def convert_to_builtin_type(obj): print 'default(', repr(obj), ...

利用python的pickle模块存储和读写任意的python数据结构

上文中提到PyQt的QDataStream类对Python类型和PyQt类型的数据进行读写操作,同样python自身提供了标准pickle模块可对任意的python数据结构进行存储和读写,当然pick...

C++处理JSON示例

一、简单介绍   JSON 的全称为:JavaScript Object Notation,JSON 是用于标记 Javascript 对象的,JSON 官方的解释为:JSON 是一种轻量级的数据传输...

python 对象和json互相转换

一、python对json的支持从python2.6开始,python标准库中添加了对json的支持,操作json时,只需要import json即可。二、python对象转换成json字符串在把py...

jQuery中读取json文件

json文件是一种轻量级的数据交互格式。一般在jquery中使用getJSON()方法读取。 $.getJSON(url,[data],[callback]) url:加载的页面地址 data:...

python 读写JSON数据

http://python3-cookbook.readthedocs.org/zh_CN/latest/c06/p02_read-write_json_data.html  问题 ...

python下快速解析复杂的json响应消息

先从 http://sourceforge.net/projects/json-py/?source=dlp 下载json.py 比如如下响应消息 {     'task': {     ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)