python json

#-*-coding:utf-8-*- 

'''编码格式记得统一,不然容易出现中文乱码,推荐用utf-8'''

import json

##################json单对象##############################
#声明初始化一个变量
obj={'name':'张三', 'email':'ljq@gmail.com'}
print type(obj) #<type 'dict'>

#字典转为json
#json_obj=json.dumps(obj) 
json_obj=json.dumps(obj, ensure_ascii=False) #解决中文乱码
print type(json_obj) #<type 'str'>
print json_obj #{"name": "ljq", "email": "ljq@gmail.com"}

#字符串转为json
str="{'name':'李四', 'email':'lisi@gmail.com'}"
#json_str=json.dumps(str)
json_str=json.dumps(str, ensure_ascii=False)
print json_str #"{'name':'张安', 'email':'ljq@gmail.com'}"

#json转为字典
dict_obj=json.loads(json_obj)
#如果传入的对象的编码不一致的话,需要用encoding指定字符编码
#dict_obj=json.loads(json_obj, encoding="utf8") 
print type(dict_obj) #<type 'dict'>
print dict_obj.get('name','')

#json转为字符串
unicode_str=json.loads(json_str)
dict_str=eval(unicode_str)
print type(unicode_str) #<type 'unicode'>
print type(dict_str)
print dict_str.get('name', '')

##################json数组##############################
arrays=[
    {'name':'zhangsan', 'age':10},
    {'name':'lisi', 'age':20},
    {'name':'wangwu', 'age':30}
]

arrays_json=json.dumps(arrays)
print type(arrays_json) #<type 'str'>

for obj in json.loads(arrays_json):
    #print type(obj) #<type 'dict'>
    print obj.get('age', '')

##################django内置json---simplejson##############################
'''
import simplejson as json

#几个主要函数:dump、dumps、load、loads,带s跟不带s的区别: 带s的是对 字符串的处理,而不带 s的是对文件对像的处理。

json、simplejson效率比较:simplejson在效率上来得有优势,推荐用simplejson

'''

 

posted on 2014-04-19 11:23  Ruthless  阅读(1254)  评论(0编辑  收藏  举报