-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgenerate_report.py
31 lines (22 loc) · 1006 Bytes
/
generate_report.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
import csv
def aggs_list_to_csv(aggs_list, csv_file):
# csv header
fieldnames = ['time', 'open', 'close', 'high', 'low', 'volume']
# csv data
rows = list(map(lambda agg_i: agg_i.to_csv_map(), aggs_list))
write_to_csv_file(csv_file, fieldnames, rows)
def create_EPS_announcements_to_price_change_csv(result_map, csv_file):
fieldnames = ['reported_date', 'surprise_percentage', 'surprise', 'estimated_EPS', 'reported_EPS',
'fiscal_date_ending', 'percentage_change']
# csv data
rows = []
for key in result_map.keys():
csv_map = result_map[key][0].to_csv_map()
csv_map['percentage_change'] = str(result_map[key][1])
rows.append(csv_map)
write_to_csv_file(csv_file, fieldnames, rows)
def write_to_csv_file(csv_file, field_names, rows):
with open(csv_file, 'w+', encoding='UTF8', newline='') as f:
writer = csv.DictWriter(f, fieldnames=field_names)
writer.writeheader()
writer.writerows(rows)