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的原对象,只是读文件

浙公网安备 33010602011771号