Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests as rq
- def printData(stat):
- print (stat["sna"],' 剩餘車輛數:',stat["sbi"],', 剩餘空位數:',int(stat["tot"])-int(stat["sbi"]),sep="")
- print ("車站位置 :",stat["ar"],',',stat["sarea"],sep='')
- def isQueryinData(query,data):
- if query in data["sna"] or query in data["ar"] or query in data["sarea"] or query in data["snaen"] or query in data["aren"] or query in data["sareaen"]:
- return True
- else:
- return False;
- while True:
- ubike = rq.get ("https://tcgbusfs.blob.core.windows.net/blobyoubike/YouBikeTP.json").json()["retVal"]
- ubike2 = rq.get ("https://tcgbusfs.blob.core.windows.net/dotapp/youbike/v2/youbike_immediate.json").json()
- ubikeNT = rq.get (" https://data.ntpc.gov.tw/api/datasets/71CD1490-A2DF-4198-BEF1-318479775E8A/csv/file").text
- ubikeNT = str(ubikeNT).split('\n')[:-1]
- ubikeNT = {row.split('"')[1] : {ubikeNT[0].split('"')[1::2][i] : row.split('"')[1::2][i] for i in range(14)} for row in ubikeNT[1:]}
- query = input("請輸入你要查詢的站點名稱或關鍵字或輸入0以退出:")
- if query == "0":
- break
- queryList = {}
- legal_queries = 0
- for stat in ubike:
- if isQueryinData(query, ubike[stat]):
- legal_queries += 1
- queryList[legal_queries] = ubike[stat]
- for stat in ubike2:
- if isQueryinData(query, stat):
- legal_queries += 1
- queryList[legal_queries] = stat
- for stat in ubikeNT:
- if isQueryinData(query, ubikeNT[stat]):
- legal_queries += 1
- queryList[legal_queries] = ubikeNT[stat]
- print ("以下為搜尋結果")
- if legal_queries > 1:
- for key in queryList:
- print(key,queryList[key]['sna'])
- else:
- if legal_queries == 1:
- printData(queryList[1])
- else:
- print ("不存在符合查詢的站點")
- continue
- n = input("請輸入查詢的站點編號或輸入0以取消:")
- while True:
- try:
- n = int(n)
- if 0 <= n <= len(queryList):
- break
- else:
- print("請輸入範圍內的數")
- except ValueError:
- print ("請輸入整數")
- n = input("請重新輸入查詢的站點編號或輸入0以取消:")
- if n:
- printData (queryList[n])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement