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】python对象与json相互转换

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

python 对象和json互相转换

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

Python类对象的JSON序列化处理

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

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

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

每天一篇python: json对象操作

使用python操作json #!/usr/local/bin/python2.7 # -*- coding:utf-8 -*- ''' Created on 2016年4月5日 python 操作j...

【python】复杂对象的创建过程与转化为json

假设我们要实现以下这样一个json,用java很容易,用python如何实现呢? { "data": { "KeyDetails": "", "action...

python Json的一点收获,自定义序列化方法

From: http://blog.csdn.net/jlnuboy/article/details/5732196 PyMOTW: json 模块: json目的: JavaScri...

str()和repr()(及''操作符)以及python对json的简单操作

str(),epr()和''运算在特性和功能方面相似,事实上repr()和''做的是完全一样的事情(函数和操作符做同样一件事,是因为在有的场合函数会比操作符更合适),它们返回的是一个对象的“官方”字符...

python解析含有重复key的json

python json 重复键

复杂json解析(json里面嵌套json)

调用第三方接口,返回一堆json,我只想取得里面的某一个属性,但是返回的比较复杂,无法直接拿到属性,格式类似于这样: {"video":{"id":"29BA6ACE7A9427489C33DC590...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python复杂对象转JSON
举报原因:
原因补充:

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