我对python
很陌生,这学期我要上一门IoT
课程。目前,我们正在学习sets
、tuples
和dictionaries
我现在的家庭作业是给我一个.json
数据文件,其中有一个巨大的set
{
每个元组有6个元素
[nodeID, dateData, temperature, humidity, pressure, precipitation]
有15个不同的nodes
(0-14),每个节点都有自己的^^^^^^^^。我想为每个节点创建一个单独的列表,并只使用[nodeID, temperature, dateData]
创建一个新的元组
为每个node
值进行设置之后。我想打印每个节点的max/min
值及其相应的日期
我不知道我是否不清楚,感谢您的帮助。包括我的代码
import json
from datetime import date, timedelta, datetime
#open .json file as "weatherData"
with open('DenverData.json', 'r') as infile:
weatherData = json.load(infile)
dataSummary = dict()
dataSummary['number_nodes'] = 0
dataSummary['start_date'] = 0
dataSummary['end_date'] = 0
dataSummary['number_days'] = 0
dataSummary['node_temperature'] = 0
dataSummary['node_humidity'] = 0
dataSummary['node_pressure'] = 0
dataSummary['node_precipitation'] = 0
dataSummary['temperature_range'] = 0
dataSummary['humidity_range'] = 0
dataSummary['pressure_range'] = 0
dataSummary['precipitation_range'] = 0
dataSummary['extreme_dates'] = 0
#LISTS
node_list = [nodeID for [nodeID, dateData, temperature, humidity, pressure, precipitation] in
weatherData]
date_list = sorted(list(set(date_list)))
temp_list = [temperature for [nodeID, dateData, temperature, humidity, pressure, precipitation] in
weatherData]
humidity_list = [humidity for [nodeID, dateData, temperature, humidity, pressure, precipitation] in
weatherData]
precipitation_list = [precipitation for [nodeID, dateData, temperature, humidity, pressure,
precipitation] in weatherData]
pressure_list = [pressure for [nodeID, dateData, temperature, humidity, pressure, precipitation] in
weatherData]
#EXTREMES
earliestDay = date_list[0]
latestDay = date_list[-1]
max_temp = max(temp_list)
min_temp = min(temp_list)
max_pressure = max(pressure_list)
min_pressure = min(pressure_list)
max_humidity = max(humidity_list)
min_humidity = min(humidity_list)
max_precipitation = max(precipitation_list)
min_precipitation = min(precipitation_list)
#PRINTS
print("\nNumber of different nodes: ", len(set(node_list)), "\n")
#number of sets
print("Amount of days data collected: ", len(set(date_list))) #number of
days
print("Earliest date of Data collected: ", earliestDay) #the earliest date
print("Latest date of data collected: ", latestDay, "\n") #the latest date
print("Amount of different temperature readings: ", len(set(temp_list)))
print("Maximum temperature: ", max(temp_list), "[C]")
print("Minimum temperature: ", min(temp_list), "[C]\n")
print("Amount of humidity readings: ", len(set(humidity_list)))
print("Maximum Humidity: ", max(humidity_list), "[%RH]")
print("Minimum Humidity: ", min(humidity_list), "[%RH]\n")
print("The number of different precipitation readings are: ",len(set(precipitation_list)))
print("Maximum Precipitation: ", max(precipitation_list), "[in]")
print("Minimum Precipitation: ", min(precipitation_list), " [in]")
print("The number of different pressure readings are: ",len(set(pressure_list)))
print("Maximum Pressure: ", max(humidity_list), "[ATM]")
print("Minimum Pressure: ", min(humidity_list), "[ATM]\n")
#FULL DATA PRINTS
print("Tuple syntax:\n [NodeID, 'Date', Temperature, Humidity, Pressure[mB], Precipitation]\n",
weatherData[0], "\n")
print("The different nodes are labeled as one of the following: \n", set(node_list), "\n")
print("Dates that data were collected:\n", sorted(set(date_list)), "\n")
print("Temperatures that were recorded:\n", sorted(list(set(temp_list))))
print("Precipitation measurements:\n", sorted(set(precipitation_list)))
print("Pressure values:\n", sorted(set(pressure_list)))
#Summary Report to json file
dataSummary['number_nodes'] = len(set(node_list))
dataSummary['start_date'] = date_list[-1]
dataSummary['end_date'] = date_list[0]
dataSummary['number_days'] = len(set(date_list))
dataSummary['node_humidity'] = range(set(humidity_list))
dataSummary['node_temperature'] = len(set(temp_list))
dataSummary['node_pressure'] = len(set(pressure_list))
dataSummary['node_precipitation'] = len(set(precipitation_list))
dataSummary['temperature_range'] = max_temp, min_temp
dataSummary['humidity_range'] = max_humidity, min_humidity
dataSummary['pressure_range'] = max_pressure, min_pressure
dataSummary['precipitation_range'] = max_precipitation, min_precipitation
#PREVIEW
print(dataSummary)
#DUMP
with open('denver_summary.json', 'w') as outfile:
json.dump(dataSummary, outfile)
要获得温度的最大值以及相应的节点和记录温度的日期,只需使用
sorted
键即可相关问题 更多 >
编程相关推荐