Red de conocimiento informático - Problemas con los teléfonos móviles - Código fuente Sjson

Código fuente Sjson

Este programa está completo y el programa estará sujeto a esta versión.

La última parte es la parte principal de la función principal, porque no hay entorno ni pruebas.

Q 1, Q 2, Q 3 han sido probados. Si hay un entorno de prueba, puede probar el cuarto trimestre y las funciones principales.

El cuarto trimestre tiene solo un informe de estado de cuenta (arg, ntemp, nrain, sdate, stime).

Tenga en cuenta que en la sección Q1, se agregó una oración Weather=jdata en la línea 1 del código.

(Vea la imagen, preste atención a la sangría del código fuente en la imagen)

Solicitud de importación

Importar panda como pd

Importar json

Importar al sistema, getopt

dUpdate= " "

Weather=pd. DataFrame({"A":[]})

#

def getData():

Pronóstico meteorológico global

URL = " https://data.weather.gov.hk/weatherAPI/opendata/weather.php?datatype=rhrread amplang=en "

response=requests.get(url)

data=response.text

jdata=json.loads(data)

dTemp=jdata['temperatura']['datos']

dRain=jdata ['Lluvia']['datos']

dUpdate=jdata['updateTime']

dfTemp=pd. Marco de datos

dfRain=pd. Marco de datos (drenaje)

###Tu código

Weather=jdata

df temp . , eje="columnas ", inplace=True)

d lluvia .({ " unidad ": " unidad _ y " }, eje="columnas ", inplace=True)

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

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

dt = dt .reindex(columnas = nuevas _ columnas)

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

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

dt.rename({" unit_y ": "unidad"}, eje="columnas", inplace=True)

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

max()))(dt.iloc[:, 0])

dt=dt.to_string(index = False)

Imprimir (dt)

### Q1

###

#

def getDateTime(sDateTime):

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

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

Fecha y hora de regreso

def getTempRain(región, clima):

nTemp=-1.0

nRain=-1.0

###Tu código

Para el clima['temperatura']['datos']:

if Región==i [ 'lugar']:?

nTemp=i['valor']

Para el clima['lluvia']['datos']:

si Región ==i['lugar']:?

nLluvia=i['max']

## Q2

###

return nTemp, nRain

#

Definir informe (ubicación, cTemp, cRain, cDate, cTime):

Imprimir ("-")

print("Resumen del tiempo actual de {} en {}". format(cDate, cTime))

print("Ubicación: {} ". format(ubicación))

p>

###Tu código

Si int(cTemp)==-1 y int(cRain)==-1:

Imprimir(" No hay registro en el área ")

En caso contrario:

si int(cTemp)==-1:

Pasa

En caso contrario:

print("Temperatura actual: . 1f°C " cTemp ")

if int(cRain)==-1:

Pasa

En caso contrario:

If cRain lt0.05:

print("No ha llovido en la última hora")

En caso contrario:

print("Lluvia en la última hora: .1f mm" lluvia ")

###tercer trimestre

###

Print("-End de informe- ")

#

mHELP='weather.py -r Región '

def main(argv):

Pruebe:

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

Excepto getopt.

GetoptError:

Imprimir (mHELP)

Salida del sistema (2)

Para opt, parámetros en opts:

if opt= = '-r ':

sFecha, sTime=getDateTime(dUpdate)

nTemp, nRain=getTempRain(arg, clima)

###Tu código

Reporte(arg, nTemp, nRain, sDate, sTime)

### Q4

###

sys. )

Imprimir (mHELP)

# LastReport()

if (__name__=="__main__ "):

getData ()

main(sys.argv[1:])

De lo contrario:

# # Pruebas unitarias para q 1, Q2 y Q3

Imprimir("Prueba")

obtenerDatos()