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

 

posted @ 2016-08-11 16:32  fengzao  阅读(140)  评论(0编辑  收藏  举报