-
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathnasawakeupcalls_to_csv.py
executable file
·98 lines (85 loc) · 2.52 KB
/
nasawakeupcalls_to_csv.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
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import json
from pandas import DataFrame
dates_arr = []
program_arr = []
missions_arr = []
artists_arr = []
songs_arr = []
comment_arr = []
genre_arr = []
style_arr = []
year = []
discogs_master = []
discogs_ur = []
def pretty_json(dict_data):
"""Function docstring."""
return json.dumps(dict_data, sort_keys=True, indent=4, separators=(",", ": "))
def output_rows(program, mission):
"""Function docstring."""
name = mission.get("Mission")
calls = mission.get("WakeupCalls", [])
for call in calls:
for date, songlist in call.items():
date_ = date
for song in songlist:
dates_arr.append(date_)
program_arr.append(program)
missions_arr.append(name)
artists_arr.append(song["Artist"])
songs_arr.append(song["Song"])
comment_arr.append(song.get("Comment", ""))
genre_arr.append(song.get("Genre", ""))
style_arr.append(song.get("Style", ""))
year.append(song.get("Year", ""))
discogs_master.append(song.get("DiscogsMasterURL", ""))
discogs_ur.append(song.get("DiscogsURI", ""))
def list_to_csv():
"""Function docstring."""
space_rows = {
"Dates": dates_arr,
"Program": program_arr,
"Mission": missions_arr,
"Artist": artists_arr,
"Song": songs_arr,
"Comment": comment_arr,
"Genre": genre_arr,
"Style": style_arr,
"Year": year,
"Discogs Master": discogs_master,
"Discogs URI": discogs_ur,
}
df = DataFrame(
space_rows,
columns=[
"Dates",
"Program",
"Mission",
"Artist",
"Song",
"Comment",
"Genre",
"Style",
"Year",
"Discogs Master",
"Discogs URI",
],
)
df.sort_values(by=["Dates"])
df.to_csv("nasawakeupcalls.csv", index=None, header=True, encoding="utf8")
def main():
"""Primary entry point of the script."""
data = None
with open("nasawakeupcalls.json") as f:
data = json.load(f)
for program in data["Programs"]:
program_ = program.get("Title")
missions = program.get("Missions", [])
for mission in missions:
if not mission.get("WakeupCalls"):
continue
output_rows(program_, mission)
list_to_csv()
if __name__ == "__main__":
main()