码迷,mamicode.com
首页 > 编程语言 > 详细

How to handle JSON using python

时间:2014-12-04 17:07:52      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:style   blog   ar   color   使用   sp   for   on   文件   

  今天花了点时间研究了一下怎么使用python处理json的文件。如下:

1. 使用模块 json  官方文档给出的是 2.6 新增加的特性

2. json的一些基本知识

数据使用key:value对形式出现,数据之间使用,分割。 数据可以是json的基本类型json文件的基本类型

对象  {}  json规定key必须是字符串格式的

数组   []

字符串 ""

逻辑值 true/false

数字    1  1.2

null

一个json的格式的例子:

{"students":[{"name":"zhangshan","age":15},{"name":"wangwu","age":18}]}

 

python 处理 json

import json

 

encodedjson = json.dumps(obj)  #将obj转化为python对象

decodejson = json.loads(encodedjson)  @将json转化为python

转化的时候遵循下面的转化规则:

从pythpn转化为json:

python      JSON
dict        object
list,tuple      array
str,unicode      string
int,long,float      number
True/False      true/false
None          null

 

从json转化为python:

JSON     Python
boject      dict
array       list
string      unicode
number(int)   int,long
number(real)  float

true/false    True/False

null        None

 

 

 

自定的对象和json的互转

import json

class Person():
    def __init__(self,name,age):
        self.name = name
        self.age = age

def object_to_dict(obj):
    d = {}
    d [__class__] = obj.__class__.__name__
    d[__module__] = obj.__module__
    d.update(obj.__dict__)
    return d

def dict_to_obj(d):
    if __class__ in d:
        classname = d.pop(__class__)
        modulename = d.pop(__module__)
        module = __import__(modulename)
        _class = getattr(module,classname)
        para = [ ( k.encode(ascii) ,v) for k,v in d.items() ]
        obj = _class(*para)
        return obj
    else:
        return d

p = Person(zhuliang,25)
jaso_encode = json.dumps(p,default=object_to_dict)

print jaso_encode
obj = json.loads(jaso_encode,object_hook=dict_to_obj)
print obj

 

How to handle JSON using python

标签:style   blog   ar   color   使用   sp   for   on   文件   

原文地址:http://www.cnblogs.com/leon-zhu/p/4142949.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!