forked from yvah/OpenSourceDynamics
-
Notifications
You must be signed in to change notification settings - Fork 0
/
json_reciever.py
50 lines (40 loc) · 1.3 KB
/
json_reciever.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
import json
class Log:
def __init__(self, title, number, state, author, comments):
self.title = title
self.number = number
self.state = state
self.author = author
self.comments = comments
class LogEncoder(json.JSONEncoder):
def default(self, o):
if isinstance(o, Log):
# JSON object would be a dictionary.
return {
"title": o.title,
"number": o.number,
"state": o.state,
"author": o.author,
"comments": o.comments
}
else:
# Base class will raise the TypeError.
return super().default(o)
class LogDecoder(json.JSONDecoder):
def __init__(self, object_hook=None, *args, **kwargs):
super().__init__(object_hook=self.object_hook, *args, **kwargs)
def object_hook(self, o):
decoded_log = Log(
o.get('title'),
o.get('number'),
o.get('state'),
o.get('author'),
o.get('comments'),
)
if (decoded_log.title != None) :
logList.insert(0,decoded_log)
return logList
logList = []
with open('sample4.json','r') as f:
log_List = json.load(f, cls=LogDecoder)
print(log_List[0].title)