Json_Pickle模块

Json_Pickle模块

这是俩个用作于序列化的模块

    json   用于【字符串】和 【python基本数据类型】 间进行转换  *****

       (数据交互),可以进行多种语言的数据交互 ,转换后类型为str类型,转换为json后,多种语言都可包含json格式

    pickle 用于【python特有的类型】 和 【python基本数据类型】间进行转换  

        只适用于python的各种对象,就是啥都能序列化,但是只能在python中使用,别的语言不认

        Json模块提供了四个功能:dumps、dump、loads、load   无s的区别,应用于文件的操作

 

        pickle模块提供了四个功能:dumps、dump、loads、load

 

 1 import json
 2 #json中的引号全部为双引号"" ""
 3 
 4 dic = {'name':'zhaokuo','age':'18'},{'name':'xiaohong','age':'16'}  #——>{"name":"zhaokuo"}——>'{"name":"zhaokuo"}'
 5 i = 8   #——>'8'
 6 s = 'hello' #——>"helllo"——>'"hello"'
 7 l = [11,22]     #——>"[11,22]"
 8 
 9 
10 #dumps序列化
11 f = open('json_test','w')
12 
13 date = json.dumps(dic)
14 f.write(date)             #这两句等价于json.dump(dic,f)
15 f.close
16 
17 #loads反序列化
18 f = open('json_test','r')
19 
20 date = json.loads(f.read())
21 for i in date:             #这两句等价于date = json.load(f)
22     print(i['age'])
23 f.close
24 
25 #dump序列化
26 f = open('json_test','w')
27 date = json.dump(dic,f)
28 f.close
29 
30 #load反序列化
31 f = open('json_test','r')
32 date = json.load(f)
33 print(date[0]['age'])
34 f.close
35 
36 
37 #————————————————pickle———————————————————————————
38 #pickle 与 json 区别:
39 #json 序列化为json字符串格式、支持int\str\list\tuple\dict
40 #pickle 序列化为字节  支持int\str\list\tuple\dict\类、方法、函数,但是没意义
41 #用法,json和pickle相同
42 
43 import pickle
44 #-------------------------序列化
45 dic = {'name':'zhaokuo','age':'18'},{'name':'xiaohong','age':'16'}
46 print(type(dic))#<class 'dict'>
47 j=pickle.dumps(dic)
48 print(type(j))#<class 'bytes'>
49 f=open('pickle_test','wb')    #注意是w是写入str,wb是写入bytes,j是'bytes'
50 f.write(j)    #-------------------等价于pickle.dump(dic,f)
51 f.close()
52 
53 #-------------------------反序列化
54 import pickle
55 f=open('pickle_test','rb')
56 data=pickle.loads(f.read())#  等价于data=pickle.load(f)
57 print(data[0]['age'])

 

json的dumps,loads,dump,load功能总结:

json.dumps(x)    把python的(x)原对象转换成json字符串的对象,主要用来写入文件。

json.loads(f)       把json字符串(f)对象转换成python原对象,主要用来读取文件和json字符串

json.dump(x,f)  把python的(x)原对象,f是文件对象,写入到f文件里面,主要用来写入文件的

json.load(file)  把json字符串的文件对象,转换成python的原对象,只是读文件

posted @ 2016-12-15 09:43  总要做些什么  阅读(59)  评论(0)    收藏  举报