python_json
json: 作为不同语言间交互的一种共知"格式",不同语言数据交换,以及不同程序之间进行内存数据交换。
简单例子:
import json data = {'kk':222,44:'ssss',99:['ss','gg']} dict_to_json = json.dumps(data) #把字典转化成json格式,也可以说是字符串(可以存硬盘) print dict_to_json json_to_dict = json.loads(dict_to_json) #把json转字典 print json_to_dict
结果:
{"kk": 222, "99": ["ss", "gg"], "44": "ssss"}
{u'kk': 222, u'99': [u'ss', u'gg'], u'44': u'ssss'}
json是常用于数据转换,但也不是所有的数据都可转换,面对复杂的数据格式,如时间格式,只能先把时间格式转成字符串格式,然后再转json。
关于json里的dump和dumps以及load和loads的区别:
import json ''' a = range(10) #创建个列表 f = file('a_to_json.txt','wb') json.dump(a,f) #直接执行json格式化及写入文件(硬盘)里 f.close() ''' f2 = file('a_to_json.txt') data2 = json.load(f2) #读取出来,并转化回原来数据格式 f2.close() #print type(data1) print type(data2)
#结果:<type 'list'>
从上课看出dump和dumps区别就是dump是直接对硬盘操作,而dumps操作数据存在内存,至于使用哪个,要看需求,dump写入文件方便,但它直接写内存速度可能会
有影响。load和loads区别就是,load省略了读的步骤。
在处理较复杂的数据类型时(如时间、类等),可以使用pickle,pickle在使用上和json基本一样。注:测试后函数不行
import pickle import datetime a = [11,22,33,44] b = pickle.dumps(a) c = pickle.dumps(datetime.datetime.now()) print b print '===========================================' print c print '===========================================' d = pickle.loads(c) print d
结果 :
(lp0
I11
aI22
aI33
aI44
a.
===========================================
cdatetime
datetime
p0
(S'\x07\xe0\x08\x0b\x12\x02.\x01\xbdP'
p1
tp2
Rp3
.
===========================================
2016-08-11 18:02:46.114000