當前位置:編程學習大全網 - 源碼下載 - Sjson源代碼

Sjson源代碼

本程序完成,程序以本版為準。

最後壹部分是主要功能的主要部分,因為沒有環境,沒有測試。

Q 1,Q 2,Q 3都測試過。如果有測試環境,可以測試Q4和main函數。

Q4只有壹個語句報告(arg、ntemp、nrain、sdate、stime)。

請註意,在Q1部分中,在代碼的第1行添加了壹個句子weather=jdata。

(見圖,註意圖中源代碼的縮進)

導入請求

進口熊貓作為pd

導入json

導入系統,getopt

dUpdate= " "

天氣=pd。DataFrame({"A":[]})

#%%

def getData():

全球天氣預報

URL = " https://data . weather . gov . hk/weather API/open data/weather . PHP?數據類型= rhrread & amplang=en "

response=requests.get(url)

數據=響應.文本

jdata=json.loads(數據)

dTemp=jdata['溫度']['數據']

dRain=jdata['降雨量']['數據']

dUpdate=jdata['updateTime']

dfTemp=pd。數據幀

dfRain=pd。數據框(排水)

###您的代碼

天氣=jdata

df temp . rename({ " unit ":" unit _ x " },axis="columns ",inplace=True)

d rain . rename({ " unit ":" unit _ y " },axis="columns ",inplace=True)

dt=pd.merge(dfTemp,dfRain,how='outer ',sort=True)

new_columns=['place ',' unit_y ',' max ',' main ',' value ',' unit_x']

dt = dt . reindex(columns = new _ columns)

dt.rename({"place":""},axis="columns ",inplace=True)

dt.rename({"unit_x":"unit"},axis="columns ",inplace=True)

dt.rename({"unit_y":"unit"},axis="columns ",inplace=True)

dt.iloc[:,0]=(lambda s:s . str . ljust(s . str . len()。max()))(dt.iloc[:,0])

dt=dt.to_string(index = False)

打印(dt)

### Q1

###

#%%

def getDateTime(sDateTime):

sDate=sDateTime.split("T")[0]

sTime = sdatetime . split(" T ")[1]。split("+"[0]

返回日期,時間

def getTempRain(地區,天氣):

nTemp=-1.0

nRain=-1.0

###您的代碼

對於天氣['溫度']['數據']:

if Region==i['place']:?

nTemp=i['值']

對於天氣['降雨']['數據']:

if Region==i['place']:?

nRain=i['max']

## Q2

###

return nTemp,nRain

#%%

定義報告(地點、cTemp、cRain、cDate、cTime):

打印(“-”)

print("在{}的{}當前天氣摘要"。格式(cDate,cTime))

print("Location:{} "。格式(位置))

###您的代碼

如果int(cTemp)==-1且int(cRain)==-1:

打印(“區域無記錄”)

否則:

if int(cTemp)==-1:

及格

否則:

print("當前溫度:% . 1f°C " % cTemp ")

if int(cRain)==-1:

及格

否則:

如果cRain & lt0.05:

打印(“最後壹小時沒有降雨”)

否則:

print("過去壹小時的降雨量:%.1f mm" % cRain ")

###第三季度

###

打印("-報告結束-")

#%%

mHELP='weather.py -r Region '

def main(argv):

嘗試:

opts,args=getopt.getopt(argv," r:")

除了getopt。GetoptError:

打印(mHELP)

系統退出(2)

對於opt,opts中的參數:

if opt=='-r ':

sDate,sTime=getDateTime(dUpdate)

nTemp,nRain=getTempRain(arg,weather)

###您的代碼

報告(arg,nTemp,nRain,sDate,sTime)

### Q4

###

sys.exit()

打印(mHELP)

# LastReport()

if (__name__=="__main__ "):

getData()

main(sys.argv[1:])

否則:

# # q 1、Q2和Q3的單元測試

打印(“測試”)

getData()

  • 上一篇:妳玩過幾款手機遊戲?哪個最值得推薦?
  • 下一篇:如何安全的存儲用戶密碼
  • copyright 2024編程學習大全網