From 5b233db2864790c5ce95467d43278c130331e249 Mon Sep 17 00:00:00 2001 From: frabad Date: Wed, 18 May 2022 21:08:12 +0200 Subject: [PATCH] =?UTF-8?q?rassemble=20les=20dates=20dans=20un=20groupe=20?= =?UTF-8?q?d'entr=C3=A9es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - respecte le modèle de données - permet ainsi l'applatissement ultérieur avec libellé - close #3 --- LittleBock/add_dates.py | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/LittleBock/add_dates.py b/LittleBock/add_dates.py index 1078374..4bac39f 100755 --- a/LittleBock/add_dates.py +++ b/LittleBock/add_dates.py @@ -5,28 +5,27 @@ import pathlib import datetime """ -ajoute une valeur de date lisible par un humain à chaque entrée d'un document JSON - -TODO: rassembler les dates dans un groupe d'entrées +ajoute une valeur de date lisible par un humain pour chaque entrée dans le JSON """ -def from_stamp(i: int) -> str: - """normalise une date UNIX""" - dt = str(i) - if len(dt)>10: - dt = dt[:10] - sdt = str(datetime.datetime.fromtimestamp(int(dt))) - return sdt - def proc(path_in): """traite un document JSON""" + + def stamp2date(i: int) -> str: + """normalise une date UNIX""" + dt = str(i) + if len(dt)>10: dt = dt[:10] + sdt = datetime.datetime.fromtimestamp(int(dt)) + return str(sdt).replace(" ","_") + _json = None with open(path_in,'r') as f: _json = json.load(f) - for group in _json: - for entry in group["data"]: - entry.update({"date":from_stamp(entry["x"])}) + ids = tuple(i.get("x") for i in _json[0]["data"]) + dates = [{"x": i,"y": stamp2date(i)} for i in ids] + dates_dict = {"name":"date_time", "data":[i for i in dates]} + _json.insert(0,dates_dict) return _json if __name__ == "__main__":