python基础学习1-json,pickle的序列化和反序列化
import requests import json dic={'k1':'v1'} print(dic,type(dic)) result = json.dumps(dic)#调用dumps方法把字典序列化成一个字符串 print(result,type(result)) s1='{"k1":"123","k2":"456"}' re = json.loads(s1) #调用 load方法将 字符串反序列化为字典对象 print(re,type(re)) s2 = '[1,2,3,4,{"a":"aaa","b":"bbb"}]' rr = json.loads(s2)#调用 load方法将 字符串反序列化为列表对象 print(rr,type(rr)) r=requests.get('http://wthrcdn.etouch.cn/weather_mini?city=重庆') #调用地址取得返回值 r.encodeing = 'utf-8' print(r.text) dic1 = json.loads(r.text)#反序列化 成个字典 反序列化时 一定要 记住使用 外单内双 引号 print(dic1,type(dic1)) print(dic1["data"]["city"])#取得字典中的 各个值 #--------------json.dump json.load--------------- li=[1,2,3] json.dump(li,open("dd","w",encoding='utf-8'))# 两步操作 1步先序列化 列表对象 2步把序列化成的字符串写入文件 li2 =json.load(open("dd","r",encoding='utf-8'))#两步操作 1步先读取文件的字符串对象,然后反序列化成列表对象 print(li2,type(li2))
import pickle #json更适合跨语言,字符串,基本数据类型的序列化 #pickle,更适用python所有类型的序列化 li=[11,22,33] r=pickle.dumps(li) #和json相同 序列化对象成字符串 只能python用 print(r,type(r)) rr=pickle.loads(r)#反序列化字符串回对象 只能python用 print(rr,type(rr)) r1=pickle.dump(li,open("dd","wb")) r2 = pickle.load(open("dd","rb")) print(r2)