zoukankan      html  css  js  c++  java
  • 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)文件

    "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 (源代码)
    习题:把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
        配置文件中 只有两种内容
        一种是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()
  • 相关阅读:
    MYSQL[18]
    MYSQL[11]
    hdu 1847
    hdu 2149
    uva 10341
    hdu 1850
    uva 10391字典树
    hdu 2473
    uva 10761
    hdu 1198
  • 原文地址:https://www.cnblogs.com/wuzhengzheng/p/9813134.html
Copyright © 2011-2022 走看看