From 8671f8db681853f9150f06624d1750de4e8eaffe Mon Sep 17 00:00:00 2001 From: Mingze Cao <29229557+Martinze@users.noreply.github.com> Date: Wed, 15 Apr 2020 09:26:16 -0500 Subject: [PATCH] Modified condition to extract feature "heartrate_zones" Co-authored-by: Meng Li Co-authored-by: JulioV --- src/data/fitbit_readable_datetime.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/data/fitbit_readable_datetime.py b/src/data/fitbit_readable_datetime.py index 7bf6e7dc..610d2cae 100644 --- a/src/data/fitbit_readable_datetime.py +++ b/src/data/fitbit_readable_datetime.py @@ -116,7 +116,15 @@ def parse_heartrate_data(heartrate_data): # Get the range of heartrate zones: outofrange, fatburn, cardio, peak # refer to: https://help.fitbit.com/articles/en_US/Help_article/1565 - heartrate_zones = json.loads(heartrate_data["fitbit_data"].iloc[0])["activities-heart"][0]["heartRateZones"] + + heartrate_fitbit_data = json.loads(heartrate_data["fitbit_data"].iloc[0])["activities-heart"][0] + if "heartRateZones" in heartrate_fitbit_data: + heartrate_zones = heartrate_fitbit_data["heartRateZones"] + elif "value" in heartrate_fitbit_data: + heartrate_zones = heartrate_fitbit_data["value"]["heartRateZones"] + else: + raise ValueError("Please check the format of fitbit heartrate raw data.") + heartrate_zones_range = {} for hrzone in heartrate_zones: heartrate_zones_range[hrzone["name"].lower().replace(" ", "")] = [hrzone["min"], hrzone["max"]]