Re: [閒聊] 抓取資料後如何讀取特定檔案

看板Python作者 (Mike)時間5年前 (2018/08/30 16:06), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《talon0222 (talon)》之銘言: : 剛入坑這個程式 : 連接url到政府的youbike之後都會跳出404項 : 目前想做到 可以使用者輸入代碼後 : 只顯示輸入代碼的資料 : 希望有大神可以幫忙 : 看了一整天的電腦找不到解答QQ : 附上5000p 感謝 : 或是輸入城市也可以 : ----- : Sent from JPTT on my iPhone 依你目前的功能需求,應該只需求用到reqeusts就可以達到 改寫一下你的程式碼: ----------------start------------------ import requests def show(value): sno = value["sno"] sna = value["sna"] tot = value["tot"] sbi = value ["sbi"] sarea = value ["sarea"] mday = value ["mday"] lat = value ["lat"] lng = value["lng"] ar = value["ar"] sna = value["sna"] tot = value["tot"] sbi = value ["sbi"] sarea = value ["sarea"] mday = value ["mday"] lat = value ["lat"] lng = value["lng"] ar = value["ar"] sareaen =value ["sareaen"] snaen =value ["snaen"] aren =value ["aren"] bemp =value["bemp"] act = value["act"] print("代號:", sno,"名稱:", sna,"停車格:", tot,"目前車輛數量:", sbi,\ "場站區域:",sarea,"資料更新時間:", mday,"緯度:", lat,"經度:", lng,\ "地:", ar,"場站區:", sareaen,"場站名:", snaen,"地址:", aren,\ "空位數量:", bemp,"全站禁用狀態:", act ) url = "https://tcgbusfs.blob.core.windows.net/blobyoubike/YouBikeTP.gz" data = requests.get(url).json() z = input('請輸入代號或名稱:') if z in data['retVal'].keys(): show(data['retVal'][z]) else: for item in data['retVal'].values(): if z == item['sna']: show(item) break else: print('找不到相對應的資料。') -----------------------end--------------------------- 一開始測你的程式碼時,並沒有你說的404錯誤 重點應該在於,json.keys()和json.values()這兩個function 這兩個分別會回傳所有key值的dict和所有value的dict 所以就可以用 if z in data['retVal'].keys() 來判斷key裡頭有沒有z這個值 若沒有,才使用 for item in data['retVal'].values(): 的方式迭代所有的資料 比對所輸入的 z 是否與相對應的欄位值(這裡是先用'sna')相同 若相同則輸出結果並且使用 break 跳出 for in 迴圈 若都找不到,則會執行 else 的區塊 我也剛接觸python不久,說明如有不對的地方,再請大家多多指教 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 202.39.7.221 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1535616409.A.CF0.html
文章代碼(AID): #1RXwMPpm (Python)
文章代碼(AID): #1RXwMPpm (Python)