/
outdoor.py
146 lines (103 loc) · 3.69 KB
/
outdoor.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# coding=utf-8
import json
import urllib
from currenttime import get_current_time
class Outdoor(object):
def __init__(self):
self.__update_time = "just now"
self.__temperature = "10"
self.__humidity = "5"
self.__radiation = "300"
self.__co2 = "600"
self.__wind_direction = "no wind"
self.__wind_speed = "0"
self.__rain = "0"
self.__atmosphere = "0"
def get_update_time(self):
return self.__update_time
def get_temperature(self):
return self.__temperature
def get_humidity(self):
return self.__humidity
def get_radiation(self):
return self.__radiation
def get_co_2(self):
return self.__co2
def get_wind_direction(self):
return self.__wind_direction
def get_wind_speed(self):
return self.__wind_speed
def get_rain(self):
return self.__rain
def get_atmosphere(self):
return self.__atmosphere
def set_update_time(self, value):
self.__update_time = value
def set_temperature(self, value):
self.__temperature = value
def set_humidity(self, value):
self.__humidity = value
def set_radiation(self, value):
self.__radiation = value
def set_co_2(self, value):
self.__co2 = value
def set_wind_direction(self, value):
self.__wind_direction = value
def set_wind_speed(self, value):
self.__wind_speed = value
def set_rain(self, value):
self.__rain = value
def set_atmosphere(self, value):
self.__atmosphere = value
def set_outdoor(self, update_time1, temperature1, humidity1, radiation1, co21, wind_direction1, wind_speed1,
rain1, atmosphere1):
self.__update_time = update_time1
self.__temperature = temperature1
self.__humidity = humidity1
self.__radiation = radiation1
self.__co2 = co21
self.__wind_direction = wind_direction1
self.__wind_speed = wind_speed1
self.__rain = rain1
self.__atmosphere = atmosphere1
def build_json(self):
return '''
{
"outdoor":{
"temperature":"%s",
"humidity":"%s",
"radiation":"%s",
"co2":"%s",
"wind_direction":"%s",
"wind_speed":"%s",
"rain":"%s",
"atmosphere":"%s",
"update_time":"%s"
}
}''' \
% (self.__temperature, self.__humidity, self.__radiation, self.__co2, self.__wind_direction,
self.__wind_speed, self.__rain, self.__atmosphere, self.__update_time)
def get_weather_from_api(self):
url = 'https://api.heweather.com/x3/weather?city=jiading&key=8924d0a789dd4e348982cfe7f721267c'
data = urllib.urlopen(url).read()
wea_json = json.loads(data)
wea_json = wea_json['HeWeather data service 3.0'][0]
update_time = get_current_time()
temperature = str(wea_json['now']['tmp'])
humidity = str(wea_json['now']['hum'])
radiation = 'not included'
co2 = 'not included'
wind_direction = wea_json['now']['wind']['dir']
wind_speed = str(wea_json['now']['wind']['spd'])
rain = wea_json['now']['pcpn']
if (float(rain)) > 1.0:
rain = 'true' # raining
else:
rain = 'false' # no rain
atmosphere = str(wea_json['now']['pres'])
self.set_outdoor(update_time, temperature, humidity, radiation, co2, wind_direction, wind_speed, rain,
atmosphere)
# test
# a=Outdoor()
# a.get_weather_from_api()
# print(a.build_json())