#-*-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
'''