关于Python中的json
2014-03-19 16:13
561 查看
import json class Person( object ): def __init__( self, name, age ): self.name = name self.age = age def __repr__( self ): return 'class %s, name: %s, age: %s'%( self.__class__.__name__, self.name, self.age ) a = Person( 'Pandora', 13 ) def class_to_json( cls ): d = {} d['__class__'] = cls.__class__.__name__ d['__module__'] = cls.__module__ d.update( cls.__dict__ ) return d dict_obj = class_to_json( a ) print dict_obj print 'Type: ', type( dict_obj ) json_obj = json.dumps( dict_obj ) print json_obj print 'Type: ', type( json_obj ) def json_to_class( jsonobj ): if '__class__' in jsonobj: class_name = jsonobj.pop( '__class__' ) module_name = jsonobj.pop( '__module__' ) module = __import__( module_name ) cls = getattr( module, class_name ) args = dict( ( key.encode( 'ascii' ), value ) for key, value in jsonobj.items() ) instance = cls( **args ) else: instance = d return list class_obj = json_to_class( dict_obj ) print class_obj print 'Type: ', type( class_obj ) linesep = '-' * 100 print linesep class JsonEncoder( json.JSONEncoder ): def default( self, obj ): d = {} d['__class__'] = obj.__class__.__name__ d['__module__'] = obj.__module__ d.update( obj.__dict__ ) return d class JsonDecoder( json.JSONDecoder ): def __init__( self ): json.JSONDecoder.__init__( self, object_hook = self.json_to_class ) def json_to_class( self, json_obj ): if '__class__' in json_obj: class_name = json_obj.pop( '__class__' ) module_name = json_obj.pop( '__module__' ) module = __import__( module_name ) cls = getattr( module, class_name ) args = dict( ( key.encode( 'ascii' ), value ) for key, value in json_obj.items() ) instance = cls( **args ) else: instance = json_obj return instance json_obj = JsonEncoder().encode( a ) print json_obj print 'Type: ', type( json_obj ) class_obj = JsonDecoder().decode( json_obj ) print class_obj print 'Type: ', type( class_obj )
相关文章推荐
- python2.7中关于编码,json格式的中文输出显示
- 关于python中json load出来编码为unicode的问题的解决
- 关于Python的JSON
- python-json-javascript之间关于字符集的转换问题
- python菜鸟笔记--python关于json对象的使用方法学习
- Python下关于JSON的一些事儿
- 【脚本语言系列】关于Python结构化文本文件处理JSON,你需要知道的事
- python2.7中关于编码,json格式的中文输出显示
- python2.7中关于编码,json格式的中文输出显示
- 关于python中json load出来编码为unicode的问题的解决
- python 3 关于requests库的 text / content /json
- Python 关于bytes类方法对数字转换的误区, Json的重要性
- 【面向对象语言系列】关于 Python JSON处理,你需要知道的事
- Python 关于bytes类方法对数字转换的误区, Json的重要性
- [置顶] 关于求N以内素数的python实现以及优化方法
- 关于Python脚本开头两行的:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定文件编码类型
- python基础-json
- 关于python
- 【脚本语言系列】关于 Python 多线程编程, 你需要知道的事
- python json simplejson