# parse_fit.py import fitdecode import json import sys from datetime import datetime path = sys.argv[1] def to_json_safe(value): # Converte datetime → stringa ISO if isinstance(value, datetime): return value.isoformat() # Converte liste/tuple ricorsivamente if isinstance(value, (list, tuple)): return [to_json_safe(v) for v in value] # Converte dict ricorsivamente if isinstance(value, dict): return {k: to_json_safe(v) for k, v in value.items()} # Tutto il resto viene restituito così com'è return value frames = [] with fitdecode.FitReader(path) as fit: for frame in fit: if isinstance(frame, fitdecode.FitDataMessage): msg = { "name": frame.name, "fields": {} } for field in frame.fields: msg["fields"][field.name] = to_json_safe(field.value) frames.append(msg) print(json.dumps(frames))