python常用模块:pickle、shelve、json、xml、configparser
本文目录:
一、pickle模块
二、shelve模块
三、json模块
四、json练习
五、xml模块
六、xml练习
七、configparser模块
一、pickle模块
pickle是一个用来序列化的模块
序列化是什么?
#指的是将内存中的数据结构转换为一种中间格式 并存储到硬盘上
反序列化是什么?
#将硬盘上存储的中间格式数据再还原为内存中的数据结构
为什么要序列化?
就是为了将数据持久存储
之前学过的文件也能持久化存储 但是操作起来非常麻烦
总结:pickle模块主要功能
dump
load
dumps 序列化
loads 序列化
不带s是帮你封装了read和writh
import pickle #用户注册得到的数据 name = "高根" password = "123" height = "1.5" hobby = ["吃","喝","飘"] with open("userdb.txt","wt",encoding="utf-8") as f: text="|".join([name,password,str(height)]) f.write(text) #序列化的过程 user={"name":name,"password":password,"height":height,"hobby":hobby} #支持python中所有格式 with open("userdb.pkl","wb",)as f: userbytes=pickle.dumps(user) f.write(userbytes) #反序列化过程 with open("userdb.pkl","rb")as f: userbytes=f.read() user=pickle.loads(userbytes) print(user) print(type(user)) #dump使用 直接序列化到文件 with open("userdb.pkl","wb")as f: pickle.dump(user,f) #load从文件反序列化 with open("userdb.pkl","rb")as f: user=pickle.load(f) print(user) #打包成函数(序列化) def myload(filename): with open(filename,"rb") as f: return pickle.load(f)
二、shelve模块
shelve模块也用于序列化 它与pickle不同之处在于 不需要关心文件模式什么的 直接把他当成一个字典来看待 它可用于进行修改
#内存->内置->sys.path import shelve """""" user={"name":"高根"} s = shelve.open("userdb.shv") s["user"]=user s.close() s=shelve.open("userdb.shv",writeback=True) print(s["user"]) s["user"]["age"] = 20 s.close()
三、json模块
""" pickle和shelve 序列化后的到的数据只能python才能解析 通常企业开发不可能做一个当即程序 都需要联网进行计算机间交互 我么必须要保证这个数据 能够跨平台使用 JSON是什么? Java script object notation 就是对象表示法 var obj = {“name”:“egon”} 对于我们开发而言,json就是一种通用的数据格式 任何语言都能解析 js中的数据类型 python数据类型的对应关系 {} 字典 [] list string“” str int/float int/float true/false True/False null None json的语法规范 最外层通常是一个字典或列表 {} or [] 只要你想写个json格式的数据最外层直接写{} 字符串必须是双引号,可以在面套任意多的层次 json模块的核心功能 dump dumps load loads 不带s 封装了write和read功能 """
import json # 反序列化 with open("a.json","rt",encoding="utf-8")as f: res=json.loads(f.read()) print(type(res)) with open("a.json",encoding="utf-8") as f: print(json.load(f)) # 直接解析字符串的json为python对象 jsontext = """{ "user": [{ "name": "egon", "age": "18" }, { "name": "egon", "age": "18" } ] }""" res=json.loads(jsontext) print(res) mydic={ "user": [{ "name": "egon", "age": "18" }, { "name": "egon", "age": "18" } ] } with open("b.json", "wt",encoding="utf-8") as f: f.write(json.dumps(mydic)) with open("b.json", "wt",encoding="utf-8") as f: json.dump(mydic, f) dic = {"a":"理查德姑妈","b":"杰克船长","c":"神秘客人"} with open("c.json","wt",encoding="utf-8") as f: f.write(json.dumps(dic)) with open("c.json","rt",encoding="utf-8")as f: d = json.loads(f.read()) print(d)
四、json练习
#将下面内容存储到(news.json)文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
"reason":"成功的返回", "result":{ "stat":"1", "data":[ { "uniquekey":"35efd2ba169d7f965669d44eb7cb8a2e", "title":"原油技术分析:API意外减少油价暂获支撑 晚间EIA将决定油价命运", "date":"2018-10-17 10:15", "category":"头条", "author_name":"FX168财经", "url":"http:\/\/mini.eastday.com\/mobile\/181017101548328.html", "thumbnail_pic_s":"http:\/\/05imgmini.eastday.com\/mobile\/20181017\/20181017101548_ce78d3f30d852abd47767db8f203f2fc_1_mwpm_03200403.jpg" }, { "uniquekey":"1618e0662b838a153513c5b2a052e25f", "title":"战胜荷兰后,中国女排已提前完成目标,郎平27个字霸气宣战意大利", "date":"2018-10-17 10:08", "category":"头条", "author_name":"蓝天侃球", "url":"http:\/\/mini.eastday.com\/mobile\/181017100831808.html", "thumbnail_pic_s":"http:\/\/06imgmini.eastday.com\/mobile\/20181017\/20181017100831_0b2d9fb72339fc3cc95650ff8bfa133b_1_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/06imgmini.eastday.com\/mobile\/20181017\/20181017100831_0b2d9fb72339fc3cc95650ff8bfa133b_2_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/06imgmini.eastday.com\/mobile\/20181017\/20181017100831_0b2d9fb72339fc3cc95650ff8bfa133b_3_mwpm_03200403.jpg" }, { "uniquekey":"64a242ea9d12444cc36b2343810f71d9", "title":"华为何刚:华为Mate20系列国内版比海外版配置更高!", "date":"2018-10-17 10:03", "category":"头条", "author_name":"锋科技", "url":"http:\/\/mini.eastday.com\/mobile\/181017100355012.html", "thumbnail_pic_s":"http:\/\/07imgmini.eastday.com\/mobile\/20181017\/20181017100355_b993a230dffab4a79c14faf62c4b69b3_1_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/07imgmini.eastday.com\/mobile\/20181017\/20181017100355_b993a230dffab4a79c14faf62c4b69b3_2_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/07imgmini.eastday.com\/mobile\/20181017\/20181017100355_b993a230dffab4a79c14faf62c4b69b3_3_mwpm_03200403.jpg" }, { "uniquekey":"0e81695aa774146ae79eef96ef41f476", "title":"盘点NBA4大“绝世好男人”,威少为妻不逛夜店,库里初中定情", "date":"2018-10-17 10:02", "category":"头条", "author_name":"体坛之王", "url":"http:\/\/mini.eastday.com\/mobile\/181017100227516.html", "thumbnail_pic_s":"http:\/\/06imgmini.eastday.com\/mobile\/20181017\/20181017100227_ff4ea97e77601d281e804115b692d72f_3_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/06imgmini.eastday.com\/mobile\/20181017\/20181017100227_ff4ea97e77601d281e804115b692d72f_4_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/06imgmini.eastday.com\/mobile\/20181017\/20181017100227_ff4ea97e77601d281e804115b692d72f_2_mwpm_03200403.jpg" }, { "uniquekey":"c69cd1bc7ce70e3f100fa0ffa0878776", "title":"一个番茄5味药!男人强身,女人养颜,老人抗癌,错过真亏", "date":"2018-10-17 10:01", "category":"头条", "author_name":"39健康网", "url":"http:\/\/mini.eastday.com\/mobile\/181017100120544.html", "thumbnail_pic_s":"http:\/\/02imgmini.eastday.com\/mobile\/20181017\/20181017_cdc69488259c28d2b5c222d176f22cbd_cover_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/02imgmini.eastday.com\/mobile\/20181017\/20181017_1f86c1e51920783971af2366c00188af_cover_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/02imgmini.eastday.com\/mobile\/20181017\/20181017_e7358d8849b746133be79b2d1d7c0f31_cover_mwpm_03200403.jpg" }, { "uniquekey":"6ebf32c2a30704d0503910114ba396af", "title":"创业板估值位于历史最低 但业绩增速放缓分析师继续唱空", "date":"2018-10-17 10:00", "category":"头条", "author_name":"财联社", "url":"http:\/\/mini.eastday.com\/mobile\/181017100055547.html", "thumbnail_pic_s":"http:\/\/04imgmini.eastday.com\/mobile\/20181017\/20181017100055_82eff7d2425f422b3cc0ad37d1982255_3_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/04imgmini.eastday.com\/mobile\/20181017\/20181017100055_82eff7d2425f422b3cc0ad37d1982255_1_mwpm_03200403.jpg" }, { "uniquekey":"a7e459aebf8aa6d74e7ddc4b156baf36", "title":"2018赛季奖励一览 S8赛季胜利女神皮肤奖励介绍", "date":"2018-10-17 10:00", "category":"头条", "author_name":"斗玩网", "url":"http:\/\/mini.eastday.com\/mobile\/181017100045828.html", "thumbnail_pic_s":"http:\/\/03imgmini.eastday.com\/mobile\/20181017\/20181017100045_99ac69a133f6b87f242b3651cb747b83_6_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/03imgmini.eastday.com\/mobile\/20181017\/20181017100045_99ac69a133f6b87f242b3651cb747b83_2_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/03imgmini.eastday.com\/mobile\/20181017\/20181017100045_99ac69a133f6b87f242b3651cb747b83_1_mwpm_03200403.jpg" }, { "uniquekey":"c4d04bf47c5a45bcb7f0313b60de84d8", "title":"国产全新大众速腾比朗逸大一圈!这回你满意了吧!", "date":"2018-10-17 10:00", "category":"头条", "author_name":"快车报", "url":"http:\/\/mini.eastday.com\/mobile\/181017100014570.html", "thumbnail_pic_s":"http:\/\/03imgmini.eastday.com\/mobile\/20181017\/20181017100014_316d207ba4061e7d5651db8259e88319_8_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/03imgmini.eastday.com\/mobile\/20181017\/20181017100014_316d207ba4061e7d5651db8259e88319_3_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/03imgmini.eastday.com\/mobile\/20181017\/20181017100014_316d207ba4061e7d5651db8259e88319_11_mwpm_03200403.jpg" }, { "uniquekey":"48721b05ac0e8cc8a1419f4dde398984", "title":"终于看到NPC团综的希望,九个小哥哥集体飞北京,疑似团综开拍", "date":"2018-10-17 10:00", "category":"头条", "author_name":"用微笑离开后的坚强", "url":"http:\/\/mini.eastday.com\/mobile\/181017100006065.html", "thumbnail_pic_s":"http:\/\/03imgmini.eastday.com\/mobile\/20181017\/20181017100006_29e6023f4ca7a46c5eb7f470ac2c9eb3_3_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/03imgmini.eastday.com\/mobile\/20181017\/20181017100006_29e6023f4ca7a46c5eb7f470ac2c9eb3_1_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/03imgmini.eastday.com\/mobile\/20181017\/20181017100006_29e6023f4ca7a46c5eb7f470ac2c9eb3_6_mwpm_03200403.jpg" }, { "uniquekey":"2bdc6124ecee5a3789c994dfec2ced06", "title":"RNG小组第一EDG小组第二 这让网友产生一个可怕的想法!", "date":"2018-10-17 09:58", "category":"头条", "author_name":"淘游助手", "url":"http:\/\/mini.eastday.com\/mobile\/181017095804681.html", "thumbnail_pic_s":"http:\/\/05imgmini.eastday.com\/mobile\/20181017\/20181017095804_a2c4f5c0b9035a369f10027a834c9fe9_3_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/05imgmini.eastday.com\/mobile\/20181017\/20181017095804_a2c4f5c0b9035a369f10027a834c9fe9_1_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/05imgmini.eastday.com\/mobile\/20181017\/20181017095804_a2c4f5c0b9035a369f10027a834c9fe9_4_mwpm_03200403.jpg" }, { "uniquekey":"21b311386ac530f1a2dffbfe1f3f6f73", "title":"电动自行车行业发展现状分析 市场或将迎来洗牌", "date":"2018-10-17 09:57", "category":"头条", "author_name":"前瞻产业研究院", "url":"http:\/\/mini.eastday.com\/mobile\/181017095726864.html", "thumbnail_pic_s":"http:\/\/04imgmini.eastday.com\/mobile\/20181017\/20181017095726_e39f7c4dcf076c5ae666c6fe6771d562_1_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/04imgmini.eastday.com\/mobile\/20181017\/20181017095726_e39f7c4dcf076c5ae666c6fe6771d562_2_mwpm_03200403.jpg" }, { "uniquekey":"b34556aeb06e8f2bef654bee4e428137", "title":"半决赛中国VS意大利,意大利输球挑中国队,朗平:他们会后悔", "date":"2018-10-17 09:56", "category":"头条", "author_name":"学尔纳", "url":"http:\/\/mini.eastday.com\/mobile\/181017095644664.html", "thumbnail_pic_s":"http:\/\/02imgmini.eastday.com\/mobile\/20181017\/20181017095644_ae19fb27fbaa7a3a197181e9eae34452_2_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/02imgmini.eastday.com\/mobile\/20181017\/20181017095644_ae19fb27fbaa7a3a197181e9eae34452_3_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/02imgmini.eastday.com\/mobile\/20181017\/20181017095644_ae19fb27fbaa7a3a197181e9eae34452_1_mwpm_03200403.jpg" }, { "uniquekey":"fee031516e7f7f78c48a6644a7cb36d2", "title":"郎平再造霸气金句!央视记者无脑提问再被一句话高智商化解", "date":"2018-10-17 09:55", "category":"头条", "author_name":"peace说球", "url":"http:\/\/mini.eastday.com\/mobile\/181017095533594.html", "thumbnail_pic_s":"http:\/\/09imgmini.eastday.com\/mobile\/20181017\/20181017095533_d41d8cd98f00b204e9800998ecf8427e_3_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/09imgmini.eastday.com\/mobile\/20181017\/20181017095533_d41d8cd98f00b204e9800998ecf8427e_4_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/09imgmini.eastday.com\/mobile\/20181017\/20181017095533_d41d8cd98f00b204e9800998ecf8427e_1_mwpm_03200403.jpg" }, { "uniquekey":"1abc34144298526928dfb5f828d0bfe6", "title":"郭靖为国镇守襄阳,那俏黄蓉私生活是如何过的小说已给出答案!", "date":"2018-10-17 09:53", "category":"头条", "author_name":"北岛的旧梦", "url":"http:\/\/mini.eastday.com\/mobile\/181017095319608.html", "thumbnail_pic_s":"http:\/\/03imgmini.eastday.com\/mobile\/20181017\/20181017095319_eb067917571ed207545690a41607d494_3_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/03imgmini.eastday.com\/mobile\/20181017\/20181017095319_eb067917571ed207545690a41607d494_4_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/03imgmini.eastday.com\/mobile\/20181017\/20181017095319_eb067917571ed207545690a41607d494_2_mwpm_03200403.jpg" }, { "uniquekey":"4e9539aa0cdfb7e5e3fbb4748aaee9ed", "title":"恭喜3生肖!未来7天,横财一马当先,有钱有地位,财富再上新台阶", "date":"2018-10-17 09:53", "category":"头条", "author_name":"阿木细说", "url":"http:\/\/mini.eastday.com\/mobile\/181017095300162.html", "thumbnail_pic_s":"http:\/\/08imgmini.eastday.com\/mobile\/20181017\/20181017095300_d41d8cd98f00b204e9800998ecf8427e_3_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/08imgmini.eastday.com\/mobile\/20181017\/20181017095300_d41d8cd98f00b204e9800998ecf8427e_1_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/08imgmini.eastday.com\/mobile\/20181017\/20181017095300_d41d8cd98f00b204e9800998ecf8427e_2_mwpm_03200403.jpg" }, { "uniquekey":"99b4ca1dbada3ad4b9c7bb94f56fdf86", "title":"曝巴萨大将赴上海看大师赛引俱乐部不满 别把心思全花在网球上", "date":"2018-10-17 09:52", "category":"头条", "author_name":"足球部落国际版", "url":"http:\/\/mini.eastday.com\/mobile\/181017095221673.html", "thumbnail_pic_s":"http:\/\/04imgmini.eastday.com\/mobile\/20181017\/20181017095221_22a8dc9540f3f635aab47c781395d454_1_mwpm_03200403.jpg" }, { "uniquekey":"a4b3e2885c14f59ac99c1ffa7c8af470", "title":"大型魔术秀:消失的身体!求求你们放过近视眼吧……哈哈", "date":"2018-10-17 09:49", "category":"头条", "author_name":"HOT男人", "url":"http:\/\/mini.eastday.com\/mobile\/181017094950231.html", "thumbnail_pic_s":"http:\/\/03imgmini.eastday.com\/mobile\/20181017\/20181017094950_3862216a8fc853bd21921b0891df563d_2_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/03imgmini.eastday.com\/mobile\/20181017\/20181017094950_3862216a8fc853bd21921b0891df563d_5_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/03imgmini.eastday.com\/mobile\/20181017\/20181017094950_3862216a8fc853bd21921b0891df563d_15_mwpm_03200403.jpg" }, { "uniquekey":"8f4d38978ccf590a6b99aabf195f2652", "title":"夜猫子的你应该知道的“小秘密”", "date":"2018-10-17 09:48", "category":"头条", "author_name":"广州建国医院精神科", "url":"http:\/\/mini.eastday.com\/mobile\/181017094842986.html", "thumbnail_pic_s":"http:\/\/01imgmini.eastday.com\/mobile\/20181017\/20181017_0a964b132e85c005a82ac71c2ab645af_mwpm_03200403.jpg" }, { "uniquekey":"ffc9347ca9a76a60ca4e042a66cd6e0a", "title":"不卸妆就分手?19岁男生为爱卸掉自己挚爱的妆容,素颜让人震撼", "date":"2018-10-17 09:47", "category":"头条", "author_name":"派大星的小可爱A", "url":"http:\/\/mini.eastday.com\/mobile\/181017094719931.html", "thumbnail_pic_s":"http:\/\/04imgmini.eastday.com\/mobile\/20181017\/20181017094719_3fd44b93a4fce69dfcc2178d41bebe4f_3_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/04imgmini.eastday.com\/mobile\/20181017\/20181017094719_3fd44b93a4fce69dfcc2178d41bebe4f_2_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/04imgmini.eastday.com\/mobile\/20181017\/20181017094719_3fd44b93a4fce69dfcc2178d41bebe4f_4_mwpm_03200403.jpg" }, { "uniquekey":"19337c495cd9c24627f2585401b356a1", "title":"52 家房企六成三季报预增 楼市降温房企遇去化难题", "date":"2018-10-17 09:45", "category":"头条", "author_name":"搜狐焦点", "url":"http:\/\/mini.eastday.com\/mobile\/181017094523953.html", "thumbnail_pic_s":"http:\/\/08imgmini.eastday.com\/mobile\/20181017\/20181017094523_1534fba9aefb0e0ca3759f0a38d83bf9_1_mwpm_03200403.jpg" }, { "uniquekey":"0870f47f7c2f7c91bc41343585b60e2d", "title":"成都地铁2号线女子持凶器伤人致2人划伤 均无生命危险", "date":"2018-10-17 09:44", "category":"头条", "author_name":"中国新闻网四川新闻", "url":"http:\/\/mini.eastday.com\/mobile\/181017094450133.html", "thumbnail_pic_s":"http:\/\/05imgmini.eastday.com\/mobile\/20181017\/20181017094450_fabd1fc33a4e0327401f5280e5d814d5_1_mwpm_03200403.jpg" }, { "uniquekey":"e1bc4da7568ecb563c6a9addb6a35d34", "title":"浪琴的30款时尚名表,最爱哪一款?", "date":"2018-10-17 09:44", "category":"头条", "author_name":"灌云醉意浓服装", "url":"http:\/\/mini.eastday.com\/mobile\/181017094431457.html", "thumbnail_pic_s":"http:\/\/07imgmini.eastday.com\/mobile\/20181017\/20181017094431_7cb7f11cf40d2a7d7add376dae350545_24_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/07imgmini.eastday.com\/mobile\/20181017\/20181017094431_7cb7f11cf40d2a7d7add376dae350545_25_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/07imgmini.eastday.com\/mobile\/20181017\/20181017094431_7cb7f11cf40d2a7d7add376dae350545_20_mwpm_03200403.jpg" }, { "uniquekey":"e21bf3ecf60ede138f7f858273708812", "title":"邻居嘲笑我新家装修成现代风,说我不懂装修,装修好才打他们的脸", "date":"2018-10-17 09:40", "category":"头条", "author_name":"家居小吴", "url":"http:\/\/mini.eastday.com\/mobile\/181017094027402.html", "thumbnail_pic_s":"http:\/\/09imgmini.eastday.com\/mobile\/20181017\/20181017_5cc7cc189378d7cdfcb04deeb86aea2d_cover_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/09imgmini.eastday.com\/mobile\/20181017\/20181017_3a8819d45cc18f7b3b10e8b0e34edba4_cover_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/09imgmini.eastday.com\/mobile\/20181017\/20181017_0bcd2ba151bc0e88abdf6d67e5da76ee_cover_mwpm_03200403.jpg" }, { "uniquekey":"ff227178528e45dba654d7a4f01c1151", "title":"搞笑GIF: 这才叫真正的绝望,感觉好委屈", "date":"2018-10-17 09:37", "category":"头条", "author_name":"快乐分享", "url":"http:\/\/mini.eastday.com\/mobile\/181017093735819.html", "thumbnail_pic_s":"http:\/\/06imgmini.eastday.com\/mobile\/20181017\/20181017_afdeb47ff89c02e1174f60040c81f660_cover_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/06imgmini.eastday.com\/mobile\/20181017\/20181017_49f1a3d7e7df7b70726a5a04528f300e_cover_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/06imgmini.eastday.com\/mobile\/20181017\/20181017_5839366136736e5e59e66095ed6d8509_cover_mwpm_03200403.jpg" }, { "uniquekey":"58fa8c9b43cae11b7406188c4f210736", "title":"封面人物|陈丽媛与马拉松的故事", "date":"2018-10-17 09:36", "category":"头条", "author_name":"创客儿", "url":"http:\/\/mini.eastday.com\/mobile\/181017093650361.html", "thumbnail_pic_s":"http:\/\/01imgmini.eastday.com\/mobile\/20181017\/20181017_91bba059bc1f13045d4ee7272b2f89f6_cover_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/01imgmini.eastday.com\/mobile\/20181017\/20181017_27e61bd909cf4f0b70f9e6621932105b_cover_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/01imgmini.eastday.com\/mobile\/20181017\/20181017_81509701d435920cad186df8aa146dcf_cover_mwpm_03200403.jpg" }, { "uniquekey":"d4273930a4a943b60c4a6ef8f5514e97", "title":"求生欲如此强的《奇葩说》第五季,如今连李诞都救不活了?", "date":"2018-10-17 09:35", "category":"头条", "author_name":"娱乐大咖秀", "url":"http:\/\/mini.eastday.com\/mobile\/181017093523888.html", "thumbnail_pic_s":"http:\/\/06imgmini.eastday.com\/mobile\/20181017\/20181017_407422950d0aa228da607ceae526bc38_cover_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/06imgmini.eastday.com\/mobile\/20181017\/20181017_4ae74313691cb097f94e011b3e1cb6b6_cover_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/06imgmini.eastday.com\/mobile\/20181017\/20181017_b71967c9c2ddad93cc76e008bcf8c012_cover_mwpm_03200403.jpg" }, { "uniquekey":"cba32d09b6f2a78690fd93e0f10a5642", "title":"16岁儿子因路坑出事故死亡 印度男子见坑就填悼念亡子", "date":"2018-10-17 09:33", "category":"头条", "author_name":"杀生丸", "url":"http:\/\/mini.eastday.com\/mobile\/181017093301811.html", "thumbnail_pic_s":"http:\/\/02imgmini.eastday.com\/mobile\/20181017\/20181017_d709e090413054b34f1e0e019b39a07c_cover_mwpm_03200403.jpg" }, { "uniquekey":"d78556f8af18b468e5adf35a862f357b", "title":"周星驰新片《D计划》,2019春节档上映,谁能一战?", "date":"2018-10-17 09:30", "category":"头条", "author_name":"夏木渊", "url":"http:\/\/mini.eastday.com\/mobile\/181017093050040.html", "thumbnail_pic_s":"http:\/\/08imgmini.eastday.com\/mobile\/20181017\/20181017093050_0344e33a5392131d3c6c247ada310846_4_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/08imgmini.eastday.com\/mobile\/20181017\/20181017093050_0344e33a5392131d3c6c247ada310846_8_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/08imgmini.eastday.com\/mobile\/20181017\/20181017093050_0344e33a5392131d3c6c247ada310846_7_mwpm_03200403.jpg" }, { "uniquekey":"1cca176fd6cd3af811bfca5975cc8244", "title":"坚瑞沃能前三季预亏294400-294900万", "date":"2018-10-17 09:30", "category":"头条", "author_name":"中国发展网", "url":"http:\/\/mini.eastday.com\/mobile\/181017093004941.html", "thumbnail_pic_s":"http:\/\/07imgmini.eastday.com\/mobile\/20181017\/20181017093004_976bd1cf9b7790efd96e1ef950234b3e_1_mwpm_03200403.jpg" }, { "uniquekey":"c0237379b0dc5907dcaad893a8629ca3", "title":"不想吃饭就来吃拌面吧,10种超好吃的拌面做法,学会做给老公吃!", "date":"2018-10-17 09:29", "category":"头条", "author_name":"三叔日食记", "url":"http:\/\/mini.eastday.com\/mobile\/181017092958385.html", "thumbnail_pic_s":"http:\/\/01imgmini.eastday.com\/mobile\/20181017\/20181017092958_ceea58d525367d04016d3c837495bd64_9_mwpm_03200403.jpg", "thumbnail_pic_s02":"http:\/\/01imgmini.eastday.com\/mobile\/20181017\/20181017092958_ceea58d525367d04016d3c837495bd64_1_mwpm_03200403.jpg", "thumbnail_pic_s03":"http:\/\/01imgmini.eastday.com\/mobile\/20181017\/20181017092958_ceea58d525367d04016d3c837495bd64_6_mwpm_03200403.jpg" } ] }, "error_code":0 }
习题:把news.json中的新闻数据提取出来打印控制台
with open("news.json","rt",encoding="utf-8") as f: res = json.load(f) print(type(res)) for dic in res["result"]["data"]: for key in dic: print("%s:%s"%(key,dic[key]))
五、xml模块
""" XML 可扩展的标记语言 <> </> 也是一种通用的数据格式,也是一种跨平台 学习的重点还是语法格式 一、任何的起始标签都必须有⼀一个结束标签。 <> </> 二、可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标 签。这种语法是在⼤于符号之前紧跟一个斜线(/),XML 解析器会将其翻译成<百度百科词条></百度百科词条>。 例例如<百度百科词条/>。 三、标签必须按合适的顺序进⾏行行嵌套,所以结束标签必须按镜像顺序匹配 起始标签。这好⽐比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有 的内部括号之前,是不不能关闭外⾯面的括号的。 四、所有的特性都必须有值。 五、所有的特性都必须在值的周围加上双引号。 一个标签的组成部分 <tagname 属性名称=“属性值”>文本内容 <></> 单标签写法 </tagename> 属性名称=“属性值”/> 镜像关闭顺序实例: <a> <b> <c> </c> </b> </a> 案例: <studentinfo> <张三> <age>20</age> <gender>boy</gender> </张三> <李四> <age>21</age> <gender>gril</gender> </李四> </studentinfo> 总结: xml也是一种中间格式 也属于序列化之一 与json相比较,同样的数据 json会比xml更小, 效率更高 xml 需要根据文档结构 手动解析 而json直接对象 """
import xml.etree.ElementTree as ElementTree #解析 d.xml tree = ElementTree.parse("d.xml") print(tree) #获取根标签 rootTree = tree.getroot() #三种获取数据的方式 #获取所有人的年龄 iter 是用于在全文范围获取标签 # for item in rootTree.iter("age"): #一个标签三个组成部分 print(item.tag)#标签名称 print(item.attrib)#标签的属性 print(item.text)#文本内容 #第二种 从当前标签的子标签重找到一个名称为age标签 如果有多个 找到的是第一个 print(rootTree.find("age").attrib) #第三种 从当前标签的子标签中找到所有名称为age的标签 print(rootTree.findall("age")) # 获取单个属性 stu = rootTree.find("stu") print(stu.get("age")) print(stu.get("name")) #删除子标签 rootTree.remove(stu) #添加子标签 #要创建一个子标签出来 newTag = ElementTree.Element("这是新标签",{"一个属性":"值"}) rootTree.append(newTag) #写入文件 tree.write("f.xml",encoding="utf-8") #ElementTree.pasre
六、xml模块的练习
#f.xml文件
<studentinfo> <stu name="张三" age="20"> <girlfriend name="张三女朋友" age="19"></girlfriend> </stu> <stu name="李四" age="21"> <girlfriend name="李四女朋友" age="19"></girlfriend> </stu> <这是新标签 一个属性="值" /></studentinfo>
#执行文件
import xml.etree.ElementTree as ElementTree tree = ElementTree.parse("f.xml") rootTree = tree.getroot() users=[] for item in rootTree.iter("stu"): user = item.attrib print(user) gitem = item.find("girlfriend") user["girlfriend"] = gitem.attrid users.append(user) print(users)
七、configparser模块
"""
config parser
用于解析配置文件的模块
何为配置文件
包含配置程序信息的文件就称为配置文件
什么样的数据应作为配置信息
需要改 但是不经常改的信息 例如数据文件的路径 DB_PATH
config parser
用于解析配置文件的模块
何为配置文件
包含配置程序信息的文件就称为配置文件
什么样的数据应作为配置信息
需要改 但是不经常改的信息 例如数据文件的路径 DB_PATH
配置文件中 只有两种内容
一种是section 分区
一种是option 选项 就是一个key=value形式
一种是section 分区
一种是option 选项 就是一个key=value形式
我们用的最多的就是get功能 用来从配置文件获取一个配置选项
练习:
做一个登录 首先查看配置文件 是否有包含 用户名和密码 如果有直接登录 如果没有就进行输入用户名密码登录
登录成功后 询问是否要保存密码 如果是 写入配置文件
做一个登录 首先查看配置文件 是否有包含 用户名和密码 如果有直接登录 如果没有就进行输入用户名密码登录
登录成功后 询问是否要保存密码 如果是 写入配置文件
"""
import configparser # 创建一个解析器 config = configparser.ConfigParser() # 读取并解析test.cfg config.read("test.cfg",encoding="utf-8") # 获取需要的信息 # 获取所有分区 print(config.sections()) # 获取所有选项 print(config.options("user")) # 获取某个选项的值 print(config.get("path","DB_PATH")) print(type(config.get("user","age"))) # # # get返回的都是字符串类型 如果需要转换类型 直接使用get+对应的类型(bool int float) print(type(config.getint("user","age"))) print(type(config.get("user","age"))) # 是否由某个选项 config.has_option() # 是否由某个分区 config.has_section()