json作为不同语言间进行数据交互的媒介,在当下已经渐渐取代了之前的xml,看一波python操作json
1 # coding = ascii 2 3 import json 4 import pickle 5 import sys 6 import os 7 ''' 8 练习json,pickle 9 json类型的数据可以实现不同语言间的数据交互, 10 python3中引入json是为了实现将字典,列表等格式的数据 11 打包成字符串形式,即将其序列化,使用eg.json.dump(list,f) or f.write(json.dumps(list))实现。 12 反序列化:将字符串格式的文本内容解析为对应的原格式数据从而实现操作, 13 使用eg.json.load(f) or json.loads(f.read()) 14 pickle的用法跟json完全一样,只是pickle支持将复杂对象打包成字符串形式 15 而json做不到。 16 ''' 17 #序列化(serializable) 18 # list = [1,2,3,4,5,6] 19 #maps = {"name":"Alex","age":30} 20 # f = open("jsonpractice.text","w") 21 # f.write(json.dumps(list)+" "+json.dumps(maps)) 22 # f.close() 23 24 #反序列化 25 # f1 = open("jsonpractice.text","rb") 26 # data = json.loads(f1.read()) 27 # print(data) 28 # for i in data.keys(): 29 # print(data[i]) 30 # f1.close() 31 32 #pickle序列化 33 # def goby(): 34 # print("good bye") 35 # maps = {"name":"Alex","age":30} 36 # maps["func"] = '''def goby(): 37 # print('good by')''' 38 # f = open("jsonpractice2.text","wb") 39 # f.write(pickle.dumps(maps)) #pickle.dump(maps,f) 40 # f.close() 41 42 #pickle反序列化 43 # f1 = open("jsonpractice2.text","rb") 44 # #data = pickle.loads(f1.read()) 45 # data = pickle.load(f1) 46 # print(data["func"]) 47 # exec(data["func"]) 48 # f1.close() 49 50 51 # 字符转码实现 52 # test = "print('你好')" 53 # print(sys.getdefaultencoding()) 54 # print(test.encode("utf-8").decode("ascii","replace").encode("ascii","replace").decode("utf-8")) 55 #exec(test)