1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        手把手教你使用Python提取快遞信息

        共 12113字,需瀏覽 25分鐘

         ·

        2022-03-16 13:01

        點擊上方“Python爬蟲與數(shù)據(jù)挖掘”,進行關注

        回復“書籍”即可獲贈Python從入門到進階共10本電子書

        洛陽親友如相問,一片冰心在玉壺。

        大家好,我是Python進階者。

        前言

        前幾天在Python交流群里邊,有個叫【^-^】的粉絲分享了一道Python基礎的題目,跟快遞信息有關的,題目如下:

        現(xiàn)在想要達到的效果如下:

        一、思路

        針對這個問題,首先需要讀取列表的信息,之后對列表進行切割,獲取列表中的省或者直轄市信息,之后再判斷省位信息中是否包含在地址信息中,使用列表追加的方法,進行處理,這里經常會用到字典和列表來存儲信息,屢試不爽。

        二、解決方案

        針對該問題,粉絲【^-^】給出了解決方法,直接上代碼如下:

        # coding: utf-8
        def sp(s):
            citys = []
            dizhi = []
            dice = {}
            dic = {}
            for i in s:
                # print(i)
                a = i[1]
                city = a[0:2]
                zlib = a[0:2]
                citys.append(city)
                dizhi.append(zlib)
            cityss = set(citys)  # 去重
            citysss = list(cityss)  # 轉為列表
            d = dice.fromkeys(citysss)
            for key in d:
                h = []
                for j in s:
                    b = j[1]
                    lgezi = b[0:2]
                    if lgezi == key:
                        h.append(j)
                    dic[key] = h
            # print(dic)
            for key in dic:
                # 遍歷字典
                print(key, dic[key])


        if __name__ == '__main__':
            sp([
                ['王*龍''北京市海淀區(qū)蘇州街大恒科技大廈南座4層'],
                ['郭*峰''河南省商丘市高新技術開發(fā)區(qū)恒宇食品廠'],
                ['趙*生''河北省唐山市朝陽道與學院路路口融通大廈2408室'],
                ['張*''陜西省咸陽市文匯東路6號西藏民族大學'],
                ['劉*民''北京市大興區(qū)南海家園四里7號樓1單元902'],
                ['郭*蘭''湖北省武漢市湖北省'],
                ['張*強''河北省張家口市經開區(qū)鉆石南路11號'],
                ['鞠*龍''山東省濰坊市玉清街江山帝景B區(qū)12號樓一單元14樓'],
                ['李*''北京市海淀區(qū)西二旗智學苑5號樓超市'],
                ['許*康''北京市西城區(qū)西單北大街甲133號'],
                ['葉*生''江蘇省揚州市揚子江中路756號'],
                ['趙*興''北京市海淀區(qū)西二旗上地信息路1號金遠見大樓華緯訊301'],
                ['徐*革''北京市海淀區(qū)閔莊路3號102棟二層206'],
                ['徐*''安徽省淮南市金荷小區(qū)(金格商場旁)'],
                ['雷*''北京市朝陽區(qū)望京街道望京sohoT1C座1201'],
                ['莊*''浙江省杭州市恒生電子大廈'],
                ['蔡*恩''湖北省武漢市仁和路沙湖港灣B區(qū)1103'],
                ['陳*''江蘇省蘇州市巴城鎮(zhèn)湖濱北路193號牛吃蟹莊'],
                ['黃*''北京市朝陽區(qū)霄云路26號鵬潤大廈A座33層'],
                ['魏*飛''河北省石家莊市新石北路與紅旗大街交口開元大廈502室'],
                ['張*''山東省濟南市興港路三慶城市主人'],
                ['段*琪''山西省臨汾市福利路堯鄉(xiāng)小區(qū)'],
                ['劉*''北京市昌平區(qū)龍禧三街驪龍園601'],
                ['王*生''上海市楊浦區(qū)邯鄲路復旦大學遺傳學樓319室'],
                ['王*君''江蘇省揚州市葉挺路318號建行營業(yè)部'],
                ['王*義''北京市東城區(qū)環(huán)球貿易中心D座'],
                ['韓*鑒''北京市門頭溝區(qū)濱河路葡東小區(qū)七號樓4層D門'],
                ['羅*若''陜西省西安市龍首北路宮園一號5號樓4單元'],
                ['王*''北京市海淀區(qū)上地東路盈創(chuàng)動力大廈e座801c源清慧虹信息科技'],
                ['馬*''湖北省武漢市廟山中路10號名湖豪庭7棟1403'],
                ['常*峰''山西省太原市迎新街'],
                ['侯*''浙江省杭州市江陵路1541號'],
                ['許*娟''上海市寶山區(qū)殷高西路高境二村177號502'],
                ['朱*''北京市海淀區(qū)東升鎮(zhèn)寶盛東路奧北科技園領智中心B座5層'],
                ['吳*峰''湖北省武漢市幸福路鴻福花園1棟3006'],
                ['付*誠''北京市海淀區(qū)觀林園'],
                ['滕*''江蘇省南京市秣周東路11號雙子樓9號樓15樓君度科技'],
                ['石*剛''遼寧省大連市大連市經濟技術開發(fā)區(qū)福泉北路20號'],
                ['程*''北京市昌平區(qū)沙河兆豐家園'],
                ['武*''北京市昌平區(qū)回龍觀西大街龍騰苑五區(qū)16號樓1單元202'],
                ['郭*欣''北京市西城區(qū)阜成門 萬通新世界 B座1503']
            ])

        代碼不算多,需要花點時間去讀,不過涉及的知識點并不復雜,基本上有點Python基礎,也可以理解。代碼運行之后,可以看到效果如下:

        不過后來我在讀取這份代碼的時候,發(fā)現(xiàn)中間有個地方寫的著實有些冗余,稍微修改下,代碼方面簡潔一些,一些函數(shù)和變量命名加了一些對應的現(xiàn)實意義的單詞,可讀性強了一丟丟,代碼如下:

        # coding: utf-8
        def sp(text):
            city = []
            dice = {}
            dic = {}
            address = [info[-1] for info in text]
            for city_info in address:
                city.append(city_info[0:2])
            cities = list(set(city))  # 先去重,然后轉為列表
            # print(cities)
            dict_keys = dice.fromkeys(cities)

            for key in dict_keys:
                h = []
                for info in text:
                    address = info[-1]
                    city_info = address[0:2]
                    if city_info == key:
                        h.append(info)
                    dic[key] = h
            # print(dic)
            for key in dic:
                # 遍歷字典
                print(key, dic[key])


        if __name__ == '__main__':
            sp([
                ['王*龍''北京市海淀區(qū)蘇州街大恒科技大廈南座4層'],
                ['柴*虎''北京市昌平區(qū)北七家鎮(zhèn)順瑋閣小區(qū)'],
                ['韓*''遼寧省葫蘆島市小莊子鄉(xiāng)寶倉村'],
                ['魏*森''北京市昌平區(qū)于辛莊路,賦騰國創(chuàng)中心,2樓'],
                ['鄧*明''北京市豐臺區(qū)新華街三里1號樓305'],
                ['趙*''上海市寶山區(qū)寶山區(qū)高境鎮(zhèn)高境一村11號后3號車庫'],
                ['徐*亮''北京市海淀區(qū)花園東路11號泰興大廈302'],
                ['張*凡''北京市昌平區(qū)沙河鎮(zhèn)松蘭堡迎客家園507'],
                ['趙*''北京市北京市海淀區(qū)農大國際創(chuàng)業(yè)園b區(qū)6065'],
                ['顧*天''北京市海淀區(qū)上地東路1號華控大廈'],
                ['丁*''上海市楊浦區(qū)安波路533弄碩和商務2號樓1102'],
                ['封*號''江蘇省蘇州市陸家鎮(zhèn)陸豐東路199號水岸香堤2#2309'],
                ['王*哲''上海市靜安區(qū)曲沃路430弄15號401'],
                ['劉**''湖北省武漢市左嶺鎮(zhèn) 武漢華星光電一號門'],
                ['付*''安徽省合肥市長江西路305號電信新技術樓'],
                ['魯*''湖北省武漢市武大科技園宏業(yè)樓C座'],
                ['張*''北京市朝陽區(qū)小營路13號亞非大廈7層8704室'],
                ['齊*''湖北省武漢市珞喻路馬家莊'],
                ['王*''北京市海淀區(qū)北塢嘉園北里9號樓三單元D01'],
                ['陳*龍''北京市朝陽區(qū)北衛(wèi)新園'],
                ['曹*生''江蘇省無錫市澄南花苑'],
                ['沈*''北京市海淀區(qū)中關村南大街甲18號北京國際大廈D座7層'],
                ['續(xù)*''山西省晉中市中都廣場12層暢快車貸'],
                ['趙*全''河北省唐山市李釗莊鎮(zhèn)大王莊村'],
                ['成*''上海市虹口區(qū)東五小區(qū)641號樓2007'],
                ['方*''上海市閔行區(qū)聯(lián)航路1399弄28號1103室'],
                ['曹*''上海市浦東新區(qū)向城路15號24C'],
                ['韓*德''北京市大興區(qū)棗園北里小區(qū)1號樓8單元202'],
                ['金*鵬''浙江省溫州市溫州職業(yè)技術學院生活區(qū)快遞中心'],
                ['陶*明''浙江省嘉興市南溪路桂苑小區(qū)23幢603'],
                ['李*ir''北京市豐臺區(qū)南苑鄉(xiāng) 德鑫家園9號樓5單元50'],
                ['姜*杰''山東省臨沂市鳳凰嶺大街惠民早餐'],
                ['l*xq''遼寧省沈陽市衛(wèi)工南街4-4網(wǎng)點2門瀚辰跆拳道'],
                ['單*成''山東省日照市日照職業(yè)技術學院'],
                ['韓*紅''上海市楊浦區(qū)隆昌路619號10號樓二樓'],
                ['魏*琪''北京市豐臺區(qū)漢威國際廣場4區(qū)12號樓'],
                ['楊*康''北京市豐臺區(qū)豐臺科技園漢威廣場12棟'],
            ])

        三、小小花絮

        這里其實還可以通過正則表達式來做地址信息的提取,代碼如下:

        with open("地址信息.txt"'r', encoding='utf-8') as f:
            for line in f:
                content = re.compile(r"\['(?P<name>.*?)', '(?P<address>.*?)'\]", re.S)
                result = content.finditer(line)
                for i in result:
                    name = i.group("name")
                    address = i.group("address")
                    print(name, address)

        可以得到用戶的姓名和地址信息,如下圖所示:

        之后將得到的數(shù)據(jù)可以存excel,之后通過pandas進行提取,這里使用小小明大佬給的指導代碼,可以提取省位,真不錯!

        df['地區(qū)2']=df.地區(qū).apply(lambda s: s[:(s in ("黑龍江省""內蒙古自治區(qū)"))+2])

        四、總結

        我是Python進階者。本文實際生活中的快遞信息,基于Python編程,使用Python基礎知識中的列表、字典、函數(shù)等,實現(xiàn)了數(shù)據(jù)信息的提取過程。

        最后感謝粉絲【^-^】的分享,感謝【小小明】大佬提供的pandas處理方法。這個問題肯定小編相信肯定還有其他的方法的,也歡迎大家在評論區(qū)諫言。

        小伙伴們,快快用實踐一下吧!如果在學習過程中,有遇到任何問題,歡迎加我好友,我拉你進Python學習交流群共同探討學習。

        小伙伴們,快快用實踐一下吧!如果在學習過程中,有遇到任何問題,歡迎加我好友,我拉你進Python學習交流群共同探討學習。

        ------------------- End -------------------

        往期精彩文章推薦:

        歡迎大家點贊,留言,轉發(fā),轉載,感謝大家的相伴與支持

        想加入Python學習群請在后臺回復【入群

        萬水千山總是情,點個【在看】行不行

        /今日留言主題/

        隨便說一兩句吧~~

        瀏覽 75
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            2019天天操夜夜操 | 黄色777 | 五月丁香花在线视频 | 国产操屄视频 | sesese999 | 可以免费看黄色视频的网站 | 成人天天干 | 别揉我胸啊嗯~ | 中文字幕三级电影 | free性欧美hd精品4k |