]>
git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git/blob - tasks/import_reports_to_database.py
3 import simplejson
as json
4 from datetime
import datetime
5 from decimal
import Decimal
as D
8 sys
.path
.append(os
.path
.dirname(os
.path
.dirname(os
.path
.abspath(__file__
))))
9 from main
import parse_config
12 reports
= sys
.argv
[2:]
14 pg_config
, report_path
= parse_config(config
)
16 connection
= psycopg2
.connect(**pg_config
)
17 cursor
= connection
.cursor()
19 report_query
= 'INSERT INTO reports("date", "market_config_id", "debug") VALUES (%s, %s, %s) RETURNING id;'
20 line_query
= 'INSERT INTO report_lines("date", "report_id", "type", "payload") VALUES (%s, %s, %s, %s);'
22 user_id_to_market_id
= {
27 for report
in reports
:
28 with open(report
, "rb") as f
:
29 json_content
= json
.load(f
, parse_float
=D
)
30 basename
= os
.path
.basename(report
)
31 date
, rest
= basename
.split("_", 1)
32 user_id
, rest
= rest
.split(".", 1)
34 date
= datetime
.strptime(date
, "%Y-%m-%dT%H:%M:%S.%f")
35 market_id
= user_id_to_market_id
[int(user_id
)]
36 debug
= any("debug" in x
and x
["debug"] for x
in json_content
)
37 print(market_id
, date
, debug
)
38 cursor
.execute(report_query
, (date
, market_id
, debug
))
39 report_id
= cursor
.fetchone()[0]
41 for line
in json_content
:
42 date
= datetime
.strptime(line
["date"], "%Y-%m-%dT%H:%M:%S.%f")
47 cursor
.execute(line_query
, (date
, report_id
, type_
, json
.dumps(line
)))