Repository: hhursev/recipe-scrapers
Pull request #1203 (2024-08-03 18:13:39)

Enforces specific order in nutrition keys and adds reorder script
Attempt at a solution to conversation related to nutrition key order in #1197

`test_nutrition_order.py`
- Adds a test to check the order of nested nutrient keys against order listed on [Schema NutritionInformation](https://schema.org/NutritionInformation)
- Handles non-schema designated nutrient keys by expecting them to exist below ordered schema designated keys.

`scripts/reorder_nutrition_keys.py`

- Adds a new helper script to reorder nutrition keys
- Order designated by Schema NutritionInformation page 
- Appends extra non-schema designated nutrient keys below ordered schema designated in no particular order.

`test_data`

- Reordered 171 nutrients tests

see woop.json for example of nutrients outside the schema designations.

jknndy: - Refactored the nutrition_keys list into a method
- Updated the reorder script accordingly and refactored to only iterate through each JSON once
- Test updates
- Added a new util test for `get_nutrition_keys`

Patch:
diff --git a/recipe_scrapers/_utils.py b/recipe_scrapers/_utils.py
index 7bd445b7..b1a0906d 100644
--- a/recipe_scrapers/_utils.py
+++ b/recipe_scrapers/_utils.py
@@ -325,3 +325,20 @@ def get_abstract_methods():
         and name not in {"links", "to_json"}  # ... and not excluded as special-cases.
         or name == "host"  # ... explicitly include the `host` method.
     ]
+
+
+def get_nutrition_keys():
+    return [
+        "servingSize",
+        "calories",
+        "fatContent",
+        "saturatedFatContent",
+        "unsaturatedFatContent",
+        "transFatContent",
+        "carbohydrateContent",
+        "sugarContent",
+        "proteinContent",
+        "sodiumContent",
+        "fiberContent",
+        "cholesterolContent",
+    ]
diff --git a/scripts/reorder_json_keys.py b/scripts/reorder_json_keys.py
index 863bbada..c2d03f55 100644
--- a/scripts/reorder_json_keys.py
+++ b/scripts/reorder_json_keys.py
@@ -1,9 +1,10 @@
 import json
 import os
 
-from recipe_scrapers._utils import get_abstract_methods
+from recipe_scrapers._utils import get_abstract_methods, get_nutrition_keys
 
 KEYS = get_abstract_methods()
+NUTRITION_KEYS = get_nutrition_keys()
 
 
 def reorder_json_keys(file_path):
@@ -11,12 +12,25 @@ def reorder_json_keys(file_path):
         data = json.load(file)
 
     reordered_data = {key: data[key] for key in KEYS if key in data}
-
     if list(data.keys()) != list(reordered_data.keys()):
-        with open(file_path, "w", encoding="utf-8") as file:
-            print(f"Re-ordering JSON keys for: {file_path}")
-            json.dump(reordered_data, file, indent=2, ensure_ascii=False)
-            file.write("\n")
+        print(f"Re-ordering JSON keys for: {file_path}")
+
+    if "nutrients" in data and data["nutrients"] is not None:
+        nutrients = data["nutrients"]
+        reordered_nutrients = {
+            key: nutrients[key] for key in NUTRITION_KEYS if key in nutrients
+        }
+        for key in nutrients:
+            if key not in reordered_nutrients:
+                reordered_nutrients[key] = nutrients[key]
+
+        if list(nutrients.keys()) != list(reordered_nutrients.keys()):
+            reordered_data["nutrients"] = reordered_nutrients
+            print(f"Re-ordering nutrition keys for: {file_path}")
+
+    with open(file_path, "w", encoding="utf-8") as file:
+        json.dump(reordered_data, file, indent=2, ensure_ascii=False)
+        file.write("\n")
 
 
 def process_directory(directory):


Test patch:
diff --git a/tests/library/test_nutrition_order.py b/tests/library/test_nutrition_order.py
new file mode 100644
index 00000000..75d8ec40
--- /dev/null
+++ b/tests/library/test_nutrition_order.py
@@ -0,0 +1,44 @@
+import json
+import os
+import unittest
+
+from recipe_scrapers._utils import get_nutrition_keys
+
+
+class TestNutritionKeyOrder(unittest.TestCase):
+
+    def test_nutrition_key_order(self):
+        nutrition_keys = get_nutrition_keys()
+        json_directory = "tests/test_data/"
+
+        for root, dirs, files in os.walk(json_directory):
+            for filename in files:
+                if filename.endswith(".json"):
+                    with open(os.path.join(root, filename), encoding="utf-8") as f:
+                        data = json.load(f)
+
+                    if "nutrients" in data and data["nutrients"] is not None:
+                        nutrients = data["nutrients"]
+                        actual_keys = list(nutrients.keys())
+
+                        ordered_keys = [
+                            key for key in nutrition_keys if key in actual_keys
+                        ]
+                        other_keys = [
+                            key for key in actual_keys if key not in nutrition_keys
+                        ]
+
+                        expected_keys = ordered_keys + other_keys
+
+                        try:
+                            self.assertEqual(expected_keys, actual_keys)
+                        except AssertionError as e:
+                            recommend_reorder_helper = (
+                                "\n\nTo automatically reorder the nutrition keys, run the following command:\n"
+                                "python scripts/reorder_json_keys.py\n"
+                            )
+                            raise AssertionError(
+                                f"File: {os.path.join(root, filename)}\n"
+                                f"{str(e)}"
+                                f"{recommend_reorder_helper}"
+                            ) from e
diff --git a/tests/library/test_utils.py b/tests/library/test_utils.py
index 95b33f95..148920d8 100644
--- a/tests/library/test_utils.py
+++ b/tests/library/test_utils.py
@@ -4,6 +4,7 @@ from recipe_scrapers._utils import (
     _extract_fractional,
     get_abstract_methods,
     get_minutes,
+    get_nutrition_keys,
     get_url_slug,
     url_path_to_dict,
 )
@@ -149,3 +150,21 @@ class TestUtils(unittest.TestCase):
             "keywords",
         ]
         self.assertEqual((expected_methods), (abstract_methods))
+
+    def test_get_nutrition_keys(self):
+        nutrition_keys = get_nutrition_keys()
+        expected_order = [
+            "servingSize",
+            "calories",
+            "fatContent",
+            "saturatedFatContent",
+            "unsaturatedFatContent",
+            "transFatContent",
+            "carbohydrateContent",
+            "sugarContent",
+            "proteinContent",
+            "sodiumContent",
+            "fiberContent",
+            "cholesterolContent",
+        ]
+        self.assertEqual((expected_order), (nutrition_keys))
diff --git a/tests/test_data/101cookbooks.com/onehundredonecookbooks.json b/tests/test_data/101cookbooks.com/onehundredonecookbooks.json
index 5523c0ce..59193683 100644
--- a/tests/test_data/101cookbooks.com/onehundredonecookbooks.json
+++ b/tests/test_data/101cookbooks.com/onehundredonecookbooks.json
@@ -32,16 +32,16 @@
   "ratings": 5.0,
   "ratings_count": 5,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "143 kcal",
-    "carbohydrateContent": "9 g",
-    "proteinContent": "4 g",
     "fatContent": "12 g",
     "saturatedFatContent": "10 g",
-    "sodiumContent": "629 mg",
-    "fiberContent": "3 g",
-    "sugarContent": "2 g",
     "unsaturatedFatContent": "2 g",
-    "servingSize": "1 serving"
+    "carbohydrateContent": "9 g",
+    "sugarContent": "2 g",
+    "proteinContent": "4 g",
+    "sodiumContent": "629 mg",
+    "fiberContent": "3 g"
   },
   "image": "https://images.101cookbooks.com/coconut_broccoli_soup.jpg?w=1200&auto=format",
   "keywords": [
diff --git a/tests/test_data/aberlehome.com/aberlehome.json b/tests/test_data/aberlehome.com/aberlehome.json
index 3522049e..f28e55fd 100644
--- a/tests/test_data/aberlehome.com/aberlehome.json
+++ b/tests/test_data/aberlehome.com/aberlehome.json
@@ -57,18 +57,18 @@
   "ratings": 4.8,
   "ratings_count": 54,
   "nutrients": {
+    "servingSize": "1",
     "calories": "288 calories",
-    "carbohydrateContent": "52 grams carbohydrates",
-    "cholesterolContent": "29 milligrams cholesterol",
     "fatContent": "5 grams fat",
-    "fiberContent": "2 grams fiber",
-    "proteinContent": "9 grams protein",
     "saturatedFatContent": "2 grams saturated fat",
-    "servingSize": "1",
-    "sodiumContent": "436 milligrams sodium",
-    "sugarContent": "6 grams sugar",
+    "unsaturatedFatContent": "2 grams unsaturated fat",
     "transFatContent": "0 grams trans fat",
-    "unsaturatedFatContent": "2 grams unsaturated fat"
+    "carbohydrateContent": "52 grams carbohydrates",
+    "sugarContent": "6 grams sugar",
+    "proteinContent": "9 grams protein",
+    "sodiumContent": "436 milligrams sodium",
+    "fiberContent": "2 grams fiber",
+    "cholesterolContent": "29 milligrams cholesterol"
   },
   "image": "https://aberlehome.com/wp-content/uploads/2021/07/sourdough-croissants-021-480x480.jpg",
   "keywords": [
diff --git a/tests/test_data/acouplecooks.com/acouplecooks.json b/tests/test_data/acouplecooks.com/acouplecooks.json
index 78231f06..7b8a2a21 100644
--- a/tests/test_data/acouplecooks.com/acouplecooks.json
+++ b/tests/test_data/acouplecooks.com/acouplecooks.json
@@ -30,14 +30,14 @@
   "cooking_method": "Stovetop",
   "nutrients": {
     "calories": "176 calories",
-    "sugarContent": "0 g",
-    "sodiumContent": "427.1 mg",
     "fatContent": "9.2 g",
     "saturatedFatContent": "5.5 g",
     "transFatContent": "0 g",
     "carbohydrateContent": "0.8 g",
-    "fiberContent": "0 g",
+    "sugarContent": "0 g",
     "proteinContent": "23 g",
+    "sodiumContent": "427.1 mg",
+    "fiberContent": "0 g",
     "cholesterolContent": "205.4 mg"
   },
   "dietary_restrictions": [
diff --git a/tests/test_data/addapinch.com/addapinch_1.json b/tests/test_data/addapinch.com/addapinch_1.json
index 654e80c3..ab9d4326 100644
--- a/tests/test_data/addapinch.com/addapinch_1.json
+++ b/tests/test_data/addapinch.com/addapinch_1.json
@@ -39,16 +39,16 @@
   "ratings": 5.0,
   "ratings_count": 4164,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "124 kcal",
-    "carbohydrateContent": "27 g",
-    "proteinContent": "3 g",
     "fatContent": "1 g",
     "saturatedFatContent": "1 g",
-    "cholesterolContent": "15 mg",
+    "carbohydrateContent": "27 g",
+    "sugarContent": "17 g",
+    "proteinContent": "3 g",
     "sodiumContent": "178 mg",
     "fiberContent": "1 g",
-    "sugarContent": "17 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "15 mg"
   },
   "image": "https://addapinch.com/wp-content/uploads/2020/04/chocolate-cake-DSC_1768.jpg",
   "keywords": [
diff --git a/tests/test_data/addapinch.com/addapinch_2.json b/tests/test_data/addapinch.com/addapinch_2.json
index a301a255..e8aa103a 100644
--- a/tests/test_data/addapinch.com/addapinch_2.json
+++ b/tests/test_data/addapinch.com/addapinch_2.json
@@ -68,18 +68,18 @@
     "Grater/ Zester"
   ],
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "361 kcal",
-    "carbohydrateContent": "56 g",
-    "proteinContent": "5 g",
     "fatContent": "14 g",
     "saturatedFatContent": "8 g",
+    "unsaturatedFatContent": "4 g",
     "transFatContent": "1 g",
-    "cholesterolContent": "36 mg",
+    "carbohydrateContent": "56 g",
+    "sugarContent": "31 g",
+    "proteinContent": "5 g",
     "sodiumContent": "272 mg",
     "fiberContent": "1 g",
-    "sugarContent": "31 g",
-    "unsaturatedFatContent": "4 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "36 mg"
   },
   "image": "https://addapinch.com/wp-content/uploads/2015/03/citrus-scones-recipe-DSC_12521-2.jpg",
   "keywords": [
diff --git a/tests/test_data/aflavorjournal.com/aflavorjournal_1.json b/tests/test_data/aflavorjournal.com/aflavorjournal_1.json
index 24dab8f0..088f4ae8 100644
--- a/tests/test_data/aflavorjournal.com/aflavorjournal_1.json
+++ b/tests/test_data/aflavorjournal.com/aflavorjournal_1.json
@@ -39,8 +39,8 @@
     "1 Mini Food Processor optional: for a very smooth ranch (see notes)"
   ],
   "nutrients": {
-    "calories": "107 kcal",
-    "servingSize": "2 tbsp."
+    "servingSize": "2 tbsp.",
+    "calories": "107 kcal"
   },
   "image": "https://aflavorjournal.com/wp-content/uploads/2022/06/Small-Batch-Ranch-Dressing-Featured.jpg",
   "keywords": [
diff --git a/tests/test_data/aflavorjournal.com/aflavorjournal_2.json b/tests/test_data/aflavorjournal.com/aflavorjournal_2.json
index d24c03ce..e4375e33 100644
--- a/tests/test_data/aflavorjournal.com/aflavorjournal_2.json
+++ b/tests/test_data/aflavorjournal.com/aflavorjournal_2.json
@@ -95,16 +95,16 @@
   "nutrients": {
     "servingSize": "1 salad",
     "calories": "665 kcal",
-    "carbohydrateContent": "16 g",
-    "proteinContent": "49 g",
     "fatContent": "46 g",
     "saturatedFatContent": "8 g",
+    "unsaturatedFatContent": "35 g",
     "transFatContent": "0.04 g",
-    "cholesterolContent": "113 mg",
+    "carbohydrateContent": "16 g",
+    "sugarContent": "5 g",
+    "proteinContent": "49 g",
     "sodiumContent": "1347 mg",
     "fiberContent": "9 g",
-    "sugarContent": "5 g",
-    "unsaturatedFatContent": "35 g"
+    "cholesterolContent": "113 mg"
   },
   "image": "https://aflavorjournal.com/wp-content/uploads/2024/02/Salmon-Kale-Salad-Ftd.jpg",
   "keywords": [
diff --git a/tests/test_data/allrecipes.com/allrecipescurated.json b/tests/test_data/allrecipes.com/allrecipescurated.json
index 79215d5e..35731e2c 100644
--- a/tests/test_data/allrecipes.com/allrecipescurated.json
+++ b/tests/test_data/allrecipes.com/allrecipescurated.json
@@ -17,6 +17,7 @@
     "½ cup freshly grated Parmesan cheese",
     "½ cup crumbled feta cheese"
   ],
+  "instructions": "Stir together olive oil, garlic, and salt; toss with tomatoes, and allow to stand for 15 minutes. Preheat oven to 400 degrees F (200 degrees C).\nBrush each pizza crust with some of the tomato marinade. Sprinkle the pizzas evenly with Mozzarella and Fontina cheeses. Arrange tomatoes overtop, then sprinkle with shredded basil, Parmesan, and feta cheese.\nBake in preheated oven until the cheese is bubbly and golden brown, about 10 minutes.",
   "instructions_list": [
     "Stir together olive oil, garlic, and salt; toss with tomatoes, and allow to stand for 15 minutes. Preheat oven to 400 degrees F (200 degrees C).",
     "Brush each pizza crust with some of the tomato marinade. Sprinkle the pizzas evenly with Mozzarella and Fontina cheeses. Arrange tomatoes overtop, then sprinkle with shredded basil, Parmesan, and feta cheese.",
@@ -25,23 +26,23 @@
   "category": "Dinner",
   "yields": "8 servings",
   "description": "These delicious four cheese pizzas are bursting with flavor, and ready in under one hour.",
-  "total_time": 40,
-  "cook_time": 10,
-  "prep_time": 15,
+  "total_time": 40.0,
+  "cook_time": 10.0,
+  "prep_time": 15.0,
   "cuisine": "Italian Inspired",
   "ratings": 4.8,
   "ratings_count": 489,
   "nutrients": {
     "calories": "551 kcal",
+    "fatContent": "26 g",
+    "saturatedFatContent": "11 g",
+    "unsaturatedFatContent": "0 g",
     "carbohydrateContent": "54 g",
-    "cholesterolContent": "58 mg",
-    "fiberContent": "3 g",
+    "sugarContent": "5 g",
     "proteinContent": "29 g",
-    "saturatedFatContent": "11 g",
     "sodiumContent": "1183 mg",
-    "sugarContent": "5 g",
-    "unsaturatedFatContent": "0 g",
-    "fatContent": "26 g"
+    "fiberContent": "3 g",
+    "cholesterolContent": "58 mg"
   },
   "image": "https://www.allrecipes.com/thmb/dA8YLuNy2HMa9s-tSTiFYjPdXy0=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc()/5225433-four-cheese-margherita-pizza-Christina-4x3-1-29b0fe4316b74017a5ae437e9ebb319d.jpg"
 }
diff --git a/tests/test_data/allthehealthythings.com/allthehealthythings_1.json b/tests/test_data/allthehealthythings.com/allthehealthythings_1.json
index 7429af98..f1ed96aa 100644
--- a/tests/test_data/allthehealthythings.com/allthehealthythings_1.json
+++ b/tests/test_data/allthehealthythings.com/allthehealthythings_1.json
@@ -68,14 +68,14 @@
   "ratings_count": 1,
   "nutrients": {
     "calories": "412 calories",
-    "sugarContent": "11.6 g",
-    "sodiumContent": "1172.4 mg",
     "fatContent": "25.2 g",
     "saturatedFatContent": "14.8 g",
     "transFatContent": "0.1 g",
     "carbohydrateContent": "37.9 g",
-    "fiberContent": "2 g",
+    "sugarContent": "11.6 g",
     "proteinContent": "9.7 g",
+    "sodiumContent": "1172.4 mg",
+    "fiberContent": "2 g",
     "cholesterolContent": "111.3 mg"
   },
   "dietary_restrictions": [
diff --git a/tests/test_data/allthehealthythings.com/allthehealthythings_2.json b/tests/test_data/allthehealthythings.com/allthehealthythings_2.json
index 493d3a2e..e3b610e7 100644
--- a/tests/test_data/allthehealthythings.com/allthehealthythings_2.json
+++ b/tests/test_data/allthehealthythings.com/allthehealthythings_2.json
@@ -25,14 +25,14 @@
   "ratings_count": 1,
   "nutrients": {
     "calories": "299 calories",
-    "sugarContent": "37.4 g",
-    "sodiumContent": "52.8 mg",
     "fatContent": "7.8 g",
     "saturatedFatContent": "3.5 g",
     "transFatContent": "0 g",
     "carbohydrateContent": "45.5 g",
-    "fiberContent": "3.9 g",
+    "sugarContent": "37.4 g",
     "proteinContent": "14.7 g",
+    "sodiumContent": "52.8 mg",
+    "fiberContent": "3.9 g",
     "cholesterolContent": "18.5 mg"
   },
   "dietary_restrictions": [
diff --git a/tests/test_data/ambitiouskitchen.com/ambitiouskitchen.json b/tests/test_data/ambitiouskitchen.com/ambitiouskitchen.json
index b99af12e..4e04e14d 100644
--- a/tests/test_data/ambitiouskitchen.com/ambitiouskitchen.json
+++ b/tests/test_data/ambitiouskitchen.com/ambitiouskitchen.json
@@ -56,9 +56,9 @@
     "fatContent": "12.1 g",
     "saturatedFatContent": "5.3 g",
     "carbohydrateContent": "31.3 g",
-    "fiberContent": "4.4 g",
     "sugarContent": "4 g",
-    "proteinContent": "19.1 g"
+    "proteinContent": "19.1 g",
+    "fiberContent": "4.4 g"
   },
   "image": "https://www.ambitiouskitchen.com/wp-content/uploads/2019/10/Vegetarian-Spinach-Pumpkin-Lasagna-5sq.jpg",
   "keywords": [
diff --git a/tests/test_data/arla.se/arla_1.json b/tests/test_data/arla.se/arla_1.json
index c3cb5c37..3c07508b 100644
--- a/tests/test_data/arla.se/arla_1.json
+++ b/tests/test_data/arla.se/arla_1.json
@@ -62,11 +62,11 @@
   "ratings": 4.2,
   "ratings_count": 13,
   "nutrients": {
-    "type": "NutritionInformation",
     "calories": "920 kcal",
-    "carbohydrateContent": "49 g",
     "fatContent": "61 g",
-    "proteinContent": "43 g"
+    "carbohydrateContent": "49 g",
+    "proteinContent": "43 g",
+    "type": "NutritionInformation"
   },
   "image": "https://images.arla.com/recordid/FB2425A1-47CE-4EFB-8D47570F80762F18/reuben-sandwich.jpg?format=jpg&width=1300&height=525",
   "keywords": [
diff --git a/tests/test_data/arla.se/arla_2.json b/tests/test_data/arla.se/arla_2.json
index 188e6b19..e20dd65d 100644
--- a/tests/test_data/arla.se/arla_2.json
+++ b/tests/test_data/arla.se/arla_2.json
@@ -66,11 +66,11 @@
   "ratings": 3.5,
   "ratings_count": 205,
   "nutrients": {
-    "type": "NutritionInformation",
     "calories": "470 kcal",
-    "carbohydrateContent": "55 g",
     "fatContent": "26 g",
-    "proteinContent": "4 g"
+    "carbohydrateContent": "55 g",
+    "proteinContent": "4 g",
+    "type": "NutritionInformation"
   },
   "image": "https://cdn-rdb.arla.com/Files/arla-se/1800291189/1765383d-98b9-4a7e-b6cb-a4a0d6bcbdbc.jpg?w=1300&h=525&mode=crop&ak=f525e733&hm=697c0698",
   "keywords": [
diff --git a/tests/test_data/averiecooks.com/averiecooks.json b/tests/test_data/averiecooks.com/averiecooks.json
index 5047c141..a17edbc4 100644
--- a/tests/test_data/averiecooks.com/averiecooks.json
+++ b/tests/test_data/averiecooks.com/averiecooks.json
@@ -30,18 +30,18 @@
   "ratings": 5.0,
   "ratings_count": 13,
   "nutrients": {
+    "servingSize": "1",
     "calories": "4245 calories",
-    "carbohydrateContent": "812 grams carbohydrates",
-    "cholesterolContent": "17 milligrams cholesterol",
     "fatContent": "20 grams fat",
-    "fiberContent": "4 grams fiber",
-    "proteinContent": "34 grams protein",
     "saturatedFatContent": "8 grams saturated fat",
-    "servingSize": "1",
-    "sodiumContent": "1160 milligrams sodium",
-    "sugarContent": "717 grams sugar",
+    "unsaturatedFatContent": "12 grams unsaturated fat",
     "transFatContent": "0 grams trans fat",
-    "unsaturatedFatContent": "12 grams unsaturated fat"
+    "carbohydrateContent": "812 grams carbohydrates",
+    "sugarContent": "717 grams sugar",
+    "proteinContent": "34 grams protein",
+    "sodiumContent": "1160 milligrams sodium",
+    "fiberContent": "4 grams fiber",
+    "cholesterolContent": "17 milligrams cholesterol"
   },
   "dietary_restrictions": [
     "Vegetarian Diet"
diff --git a/tests/test_data/baking-sense.com/bakingsense_1.json b/tests/test_data/baking-sense.com/bakingsense_1.json
index 56a8d523..221bf4e7 100644
--- a/tests/test_data/baking-sense.com/bakingsense_1.json
+++ b/tests/test_data/baking-sense.com/bakingsense_1.json
@@ -76,18 +76,18 @@
     "Half Sheet Pans"
   ],
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "247 kcal",
-    "sodiumContent": "148 mg",
-    "sugarContent": "20 g",
-    "fiberContent": "1 g",
-    "cholesterolContent": "69 mg",
-    "transFatContent": "1 g",
-    "saturatedFatContent": "6 g",
     "fatContent": "10 g",
-    "proteinContent": "4 g",
-    "carbohydrateContent": "49 g",
+    "saturatedFatContent": "6 g",
     "unsaturatedFatContent": "4 g",
-    "servingSize": "1 serving"
+    "transFatContent": "1 g",
+    "carbohydrateContent": "49 g",
+    "sugarContent": "20 g",
+    "proteinContent": "4 g",
+    "sodiumContent": "148 mg",
+    "fiberContent": "1 g",
+    "cholesterolContent": "69 mg"
   },
   "image": "https://www.baking-sense.com/wp-content/uploads/2020/05/sourdough-bundt-9a.jpg",
   "keywords": [
diff --git a/tests/test_data/baking-sense.com/bakingsense_2.json b/tests/test_data/baking-sense.com/bakingsense_2.json
index bb5ffc45..edf28d7c 100644
--- a/tests/test_data/baking-sense.com/bakingsense_2.json
+++ b/tests/test_data/baking-sense.com/bakingsense_2.json
@@ -77,15 +77,15 @@
   "nutrients": {
     "servingSize": "1 g",
     "calories": "419 kcal",
-    "carbohydrateContent": "22 g",
-    "proteinContent": "1 g",
     "fatContent": "7 g",
     "saturatedFatContent": "4 g",
-    "cholesterolContent": "21 mg",
+    "unsaturatedFatContent": "3 g",
+    "carbohydrateContent": "22 g",
+    "sugarContent": "20 g",
+    "proteinContent": "1 g",
     "sodiumContent": "7 mg",
     "fiberContent": "2 g",
-    "sugarContent": "20 g",
-    "unsaturatedFatContent": "3 g"
+    "cholesterolContent": "21 mg"
   },
   "image": "https://www.baking-sense.com/wp-content/uploads/2022/04/choc-sberry-cake-featured.jpg",
   "keywords": [
diff --git a/tests/test_data/bakingmischief.com/bakingmischief_1.json b/tests/test_data/bakingmischief.com/bakingmischief_1.json
index 9b4f415d..6c60559d 100644
--- a/tests/test_data/bakingmischief.com/bakingmischief_1.json
+++ b/tests/test_data/bakingmischief.com/bakingmischief_1.json
@@ -102,8 +102,8 @@
   "prep_time": 30,
   "cuisine": "American,Mexican",
   "nutrients": {
-    "calories": "824 kcal",
-    "servingSize": "1 serving"
+    "servingSize": "1 serving",
+    "calories": "824 kcal"
   },
   "image": "https://bakingmischief.com/wp-content/uploads/2020/12/barbacoa-burrito-bowls-image-square-2.jpg",
   "keywords": [
diff --git a/tests/test_data/bakingmischief.com/bakingmischief_2.json b/tests/test_data/bakingmischief.com/bakingmischief_2.json
index 08655093..0ccbe678 100644
--- a/tests/test_data/bakingmischief.com/bakingmischief_2.json
+++ b/tests/test_data/bakingmischief.com/bakingmischief_2.json
@@ -73,8 +73,8 @@
   "ratings": 4.88,
   "ratings_count": 49,
   "nutrients": {
-    "calories": "522 kcal",
-    "servingSize": "1 serving"
+    "servingSize": "1 serving",
+    "calories": "522 kcal"
   },
   "image": "https://bakingmischief.com/wp-content/uploads/2017/03/small-carrot-cake-with-cream-cheese-frosting-image-square.jpg",
   "keywords": [
diff --git a/tests/test_data/barefeetinthekitchen.com/barefeetinthekitchen_1.json b/tests/test_data/barefeetinthekitchen.com/barefeetinthekitchen_1.json
index a9013f20..e2585ae5 100644
--- a/tests/test_data/barefeetinthekitchen.com/barefeetinthekitchen_1.json
+++ b/tests/test_data/barefeetinthekitchen.com/barefeetinthekitchen_1.json
@@ -34,18 +34,18 @@
   "ratings": 5.0,
   "ratings_count": 5,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "518 kcal",
-    "carbohydrateContent": "25 g",
-    "proteinContent": "20 g",
     "fatContent": "37 g",
     "saturatedFatContent": "11 g",
-    "cholesterolContent": "82 mg",
+    "unsaturatedFatContent": "24 g",
+    "transFatContent": "0.2 g",
+    "carbohydrateContent": "25 g",
+    "sugarContent": "6 g",
+    "proteinContent": "20 g",
     "sodiumContent": "808 mg",
     "fiberContent": "4 g",
-    "sugarContent": "6 g",
-    "transFatContent": "0.2 g",
-    "unsaturatedFatContent": "24 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "82 mg"
   },
   "image": "https://barefeetinthekitchen.com/wp-content/uploads/2023/08/Sausage-Sweet-Potato-Hash-BFK-7-1-of-1.jpg",
   "keywords": [
diff --git a/tests/test_data/barefeetinthekitchen.com/barefeetinthekitchen_2.json b/tests/test_data/barefeetinthekitchen.com/barefeetinthekitchen_2.json
index 86536a91..5cd1afaa 100644
--- a/tests/test_data/barefeetinthekitchen.com/barefeetinthekitchen_2.json
+++ b/tests/test_data/barefeetinthekitchen.com/barefeetinthekitchen_2.json
@@ -59,16 +59,16 @@
   "ratings": 5.0,
   "ratings_count": 17,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "415 kcal",
-    "carbohydrateContent": "43 g",
-    "proteinContent": "16 g",
     "fatContent": "20 g",
     "saturatedFatContent": "3 g",
-    "cholesterolContent": "40 mg",
+    "carbohydrateContent": "43 g",
+    "sugarContent": "12 g",
+    "proteinContent": "16 g",
     "sodiumContent": "476 mg",
     "fiberContent": "3 g",
-    "sugarContent": "12 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "40 mg"
   },
   "image": "https://barefeetinthekitchen.com/wp-content/uploads/2019/04/Spinach-Orzo-Salad-BFK-3-1-of-1.jpg",
   "keywords": [
diff --git a/tests/test_data/bbcgoodfood.com/bbcgoodfood.json b/tests/test_data/bbcgoodfood.com/bbcgoodfood.json
index 24268517..34444aa8 100644
--- a/tests/test_data/bbcgoodfood.com/bbcgoodfood.json
+++ b/tests/test_data/bbcgoodfood.com/bbcgoodfood.json
@@ -33,9 +33,9 @@
     "saturatedFatContent": "6 grams saturated fat",
     "carbohydrateContent": "82 grams carbohydrates",
     "sugarContent": "8 grams sugar",
-    "fiberContent": "7 grams fiber",
     "proteinContent": "39 grams protein",
-    "sodiumContent": "0.2 milligram of sodium"
+    "sodiumContent": "0.2 milligram of sodium",
+    "fiberContent": "7 grams fiber"
   },
   "image": "https://images.immediate.co.uk/production/volatile/sites/30/2020/08/summer-meatballs-spaghetti-bd04f10.jpg?resize=768,574",
   "keywords": [
diff --git a/tests/test_data/bbcgoodfood.com/bbcgoodfood_groups.json b/tests/test_data/bbcgoodfood.com/bbcgoodfood_groups.json
index a44ccaee..655c6e86 100644
--- a/tests/test_data/bbcgoodfood.com/bbcgoodfood_groups.json
+++ b/tests/test_data/bbcgoodfood.com/bbcgoodfood_groups.json
@@ -64,9 +64,9 @@
     "saturatedFatContent": "9 grams saturated fat",
     "carbohydrateContent": "53 grams carbohydrates",
     "sugarContent": "36 grams sugar",
-    "fiberContent": "1 grams fiber",
     "proteinContent": "5 grams protein",
-    "sodiumContent": "0.3 milligram of sodium"
+    "sodiumContent": "0.3 milligram of sodium",
+    "fiberContent": "1 grams fiber"
   },
   "image": "https://images.immediate.co.uk/production/volatile/sites/30/2020/08/recipe-image-legacy-id-405483_12-cee017a.jpg?resize=768,574",
   "keywords": [
diff --git a/tests/test_data/bettybossi.ch/bettybossi.json b/tests/test_data/bettybossi.ch/bettybossi.json
index add52015..c455eae3 100644
--- a/tests/test_data/bettybossi.ch/bettybossi.json
+++ b/tests/test_data/bettybossi.ch/bettybossi.json
@@ -39,11 +39,11 @@
   "ratings": 5.0,
   "ratings_count": 1,
   "nutrients": {
+    "servingSize": "30 parts",
     "calories": "135 kcal",
     "fatContent": "9 g",
     "carbohydrateContent": "12 g",
-    "proteinContent": "3 g",
-    "servingSize": "30 parts"
+    "proteinContent": "3 g"
   },
   "dietary_restrictions": [
     "Vegetarian Diet"
diff --git a/tests/test_data/bettycrocker.com/bettycrocker_1.json b/tests/test_data/bettycrocker.com/bettycrocker_1.json
index d28fa600..8787b4d9 100644
--- a/tests/test_data/bettycrocker.com/bettycrocker_1.json
+++ b/tests/test_data/bettycrocker.com/bettycrocker_1.json
@@ -28,17 +28,17 @@
   "ratings": 4.5,
   "ratings_count": 60,
   "nutrients": {
+    "servingSize": "1 Bar",
     "calories": "180",
-    "carbohydrateContent": "21 g",
-    "cholesterolContent": "20 mg",
     "fatContent": "2",
-    "fiberContent": "0 g",
-    "proteinContent": "2 g",
     "saturatedFatContent": "6 g",
-    "servingSize": "1 Bar",
-    "sodiumContent": "210 mg",
+    "transFatContent": "0 g",
+    "carbohydrateContent": "21 g",
     "sugarContent": "14 g",
-    "transFatContent": "0 g"
+    "proteinContent": "2 g",
+    "sodiumContent": "210 mg",
+    "fiberContent": "0 g",
+    "cholesterolContent": "20 mg"
   },
   "image": "https://images-gmi-pmc.edge-generalmills.com/e1306219-6178-4e15-afaf-ba6e527f1e6b.jpg",
   "keywords": [
diff --git a/tests/test_data/bettycrocker.com/bettycrocker_2.json b/tests/test_data/bettycrocker.com/bettycrocker_2.json
index aabb16d4..c4eb34d5 100644
--- a/tests/test_data/bettycrocker.com/bettycrocker_2.json
+++ b/tests/test_data/bettycrocker.com/bettycrocker_2.json
@@ -56,17 +56,17 @@
   "ratings": 4.5,
   "ratings_count": 96,
   "nutrients": {
+    "servingSize": "1 Serving",
     "calories": "480",
-    "carbohydrateContent": "66 g",
-    "cholesterolContent": "50 mg",
     "fatContent": "4 1/2",
-    "fiberContent": "2 g",
-    "proteinContent": "4 g",
     "saturatedFatContent": "14 g",
-    "servingSize": "1 Serving",
-    "sodiumContent": "360 mg",
+    "transFatContent": "1/2 g",
+    "carbohydrateContent": "66 g",
     "sugarContent": "53 g",
-    "transFatContent": "1/2 g"
+    "proteinContent": "4 g",
+    "sodiumContent": "360 mg",
+    "fiberContent": "2 g",
+    "cholesterolContent": "50 mg"
   },
   "image": "https://images-gmi-pmc.edge-generalmills.com/6ec084f7-ffd9-4df2-8302-877825ecc321.jpg",
   "keywords": [
diff --git a/tests/test_data/biancazapatka.com/biancazapatka_1.json b/tests/test_data/biancazapatka.com/biancazapatka_1.json
index d70f9395..25ce5091 100644
--- a/tests/test_data/biancazapatka.com/biancazapatka_1.json
+++ b/tests/test_data/biancazapatka.com/biancazapatka_1.json
@@ -81,12 +81,12 @@
   "nutrients": {
     "servingSize": "1 Bowl",
     "calories": "451 kcal",
-    "carbohydrateContent": "59.2 g",
-    "proteinContent": "17.6 g",
     "fatContent": "17.6 g",
     "saturatedFatContent": "3.4 g",
-    "sodiumContent": "779.3 mg",
+    "carbohydrateContent": "59.2 g",
     "sugarContent": "5.8 g",
+    "proteinContent": "17.6 g",
+    "sodiumContent": "779.3 mg",
     "fiberContent": "4.4 g"
   },
   "image": "https://biancazapatka.com/wp-content/uploads/2022/07/buddha-bowl-sauce.jpg",
diff --git a/tests/test_data/biancazapatka.com/biancazapatka_2.json b/tests/test_data/biancazapatka.com/biancazapatka_2.json
index ed5be3c7..aa6d14ee 100644
--- a/tests/test_data/biancazapatka.com/biancazapatka_2.json
+++ b/tests/test_data/biancazapatka.com/biancazapatka_2.json
@@ -91,14 +91,14 @@
   "ratings_count": 2,
   "nutrients": {
     "servingSize": "1 Piece",
-    "carbohydrateContent": "36.8 g",
     "calories": "275.1 kcal",
-    "proteinContent": "3.9 g",
     "fatContent": "13.1 g",
     "saturatedFatContent": "2.5 g",
+    "carbohydrateContent": "36.8 g",
+    "sugarContent": "15.8 g",
+    "proteinContent": "3.9 g",
     "sodiumContent": "119.1 mg",
-    "fiberContent": "1.7 g",
-    "sugarContent": "15.8 g"
+    "fiberContent": "1.7 g"
   },
   "image": "https://biancazapatka.com/wp-content/uploads/2023/07/kuchen-blaubeeren-brombeeren.jpg",
   "keywords": [
diff --git a/tests/test_data/bigoven.com/bigoven_1.json b/tests/test_data/bigoven.com/bigoven_1.json
index b661bd23..7f41487e 100644
--- a/tests/test_data/bigoven.com/bigoven_1.json
+++ b/tests/test_data/bigoven.com/bigoven_1.json
@@ -84,17 +84,17 @@
   "ratings": 4.33,
   "ratings_count": 3,
   "nutrients": {
+    "servingSize": "1 1 Serving (21g)",
     "calories": "2 calories",
     "fatContent": "0.0816344254758325 g",
+    "saturatedFatContent": "0.0386162663043889 g",
+    "transFatContent": "0.0131417293773331 g",
     "carbohydrateContent": "0.199958265882293 g",
-    "cholesterolContent": "0.155729166219071 mg",
-    "fiberContent": "0.110702244487001 g",
+    "sugarContent": "0.0892560213952928 g",
     "proteinContent": "0.133798586494011 g",
-    "saturatedFatContent": "0.0386162663043889 g",
-    "servingSize": "1 1 Serving (21g)",
     "sodiumContent": "1.19938596631195 mg",
-    "sugarContent": "0.0892560213952928 g",
-    "transFatContent": "0.0131417293773331 g"
+    "fiberContent": "0.110702244487001 g",
+    "cholesterolContent": "0.155729166219071 mg"
   },
   "image": "https://bigoven-res.cloudinary.com/image/upload/h_640,w_640,c_fill/no-knead-herb-focaccia-79674b.jpg",
   "keywords": [
diff --git a/tests/test_data/bigoven.com/bigoven_2.json b/tests/test_data/bigoven.com/bigoven_2.json
index 31e1fe6e..a0207d9b 100644
--- a/tests/test_data/bigoven.com/bigoven_2.json
+++ b/tests/test_data/bigoven.com/bigoven_2.json
@@ -71,17 +71,17 @@
   "ratings": 3.96,
   "ratings_count": 24,
   "nutrients": {
+    "servingSize": "1 1 Serving (165g)",
     "calories": "481 calories",
     "fatContent": "26.8979413713296 g",
+    "saturatedFatContent": "16.3710790210703 g",
+    "transFatContent": "2.40130497025108 g",
     "carbohydrateContent": "57.4098187923495 g",
-    "cholesterolContent": "67.6928125483674 mg",
-    "fiberContent": "1.67127084293811 g",
+    "sugarContent": "55.7385479494114 g",
     "proteinContent": "5.32984031303912 g",
-    "saturatedFatContent": "16.3710790210703 g",
-    "servingSize": "1 1 Serving (165g)",
     "sodiumContent": "2999.16267349517 mg",
-    "sugarContent": "55.7385479494114 g",
-    "transFatContent": "2.40130497025108 g"
+    "fiberContent": "1.67127084293811 g",
+    "cholesterolContent": "67.6928125483674 mg"
   },
   "image": "https://bigoven-res.cloudinary.com/image/upload/h_320,w_320,c_fill/white-chocolate-raspberry-cupc-bd2bf9.jpg",
   "keywords": [
diff --git a/tests/test_data/bluejeanchef.com/bluejeanchef_1.json b/tests/test_data/bluejeanchef.com/bluejeanchef_1.json
index 44296193..b45ac062 100644
--- a/tests/test_data/bluejeanchef.com/bluejeanchef_1.json
+++ b/tests/test_data/bluejeanchef.com/bluejeanchef_1.json
@@ -42,16 +42,16 @@
   "ratings": 4.34,
   "ratings_count": 3,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "692 kcal",
-    "carbohydrateContent": "76 g",
-    "proteinContent": "30 g",
     "fatContent": "32 g",
     "saturatedFatContent": "8 g",
-    "cholesterolContent": "44 mg",
+    "carbohydrateContent": "76 g",
+    "sugarContent": "8 g",
+    "proteinContent": "30 g",
     "sodiumContent": "1535 mg",
     "fiberContent": "17 g",
-    "sugarContent": "8 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "44 mg"
   },
   "image": "https://bluejeanchef.com/uploads/2019/05/Chicken-Tortilla-Soup-1280-1205.jpg",
   "keywords": [
diff --git a/tests/test_data/bluejeanchef.com/bluejeanchef_2.json b/tests/test_data/bluejeanchef.com/bluejeanchef_2.json
index f14509b3..b8442fd0 100644
--- a/tests/test_data/bluejeanchef.com/bluejeanchef_2.json
+++ b/tests/test_data/bluejeanchef.com/bluejeanchef_2.json
@@ -61,16 +61,16 @@
   "nutrients": {
     "servingSize": "1 of 12 slices",
     "calories": "495 kcal",
-    "carbohydrateContent": "33 g",
-    "proteinContent": "5 g",
     "fatContent": "39 g",
     "saturatedFatContent": "23 g",
+    "unsaturatedFatContent": "12 g",
     "transFatContent": "0.3 g",
-    "cholesterolContent": "109 mg",
+    "carbohydrateContent": "33 g",
+    "sugarContent": "24 g",
+    "proteinContent": "5 g",
     "sodiumContent": "269 mg",
     "fiberContent": "1 g",
-    "sugarContent": "24 g",
-    "unsaturatedFatContent": "12 g"
+    "cholesterolContent": "109 mg"
   },
   "image": "https://bluejeanchef.com/uploads/2023/07/No-Bake-Cheesecake-1280-9439.jpg",
   "keywords": [
diff --git a/tests/test_data/bowlofdelicious.com/bowlofdelicious.json b/tests/test_data/bowlofdelicious.com/bowlofdelicious.json
index e5467366..52924f5b 100644
--- a/tests/test_data/bowlofdelicious.com/bowlofdelicious.json
+++ b/tests/test_data/bowlofdelicious.com/bowlofdelicious.json
@@ -36,16 +36,16 @@
     "Nonstick Skillet"
   ],
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "331 kcal",
-    "carbohydrateContent": "10 g",
-    "proteinContent": "28 g",
     "fatContent": "20 g",
     "saturatedFatContent": "3 g",
-    "cholesterolContent": "43 mg",
+    "carbohydrateContent": "10 g",
+    "sugarContent": "9 g",
+    "proteinContent": "28 g",
     "sodiumContent": "1632 mg",
     "fiberContent": "1 g",
-    "sugarContent": "9 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "43 mg"
   },
   "image": "https://www.bowlofdelicious.com/wp-content/uploads/2019/09/Ahi-Tuna-Steaks-square.jpg",
   "keywords": [
diff --git a/tests/test_data/budgetbytes.com/budgetbytes.json b/tests/test_data/budgetbytes.com/budgetbytes.json
index a2219859..bcafa19f 100644
--- a/tests/test_data/budgetbytes.com/budgetbytes.json
+++ b/tests/test_data/budgetbytes.com/budgetbytes.json
@@ -38,9 +38,9 @@
   "nutrients": {
     "servingSize": "1 burger",
     "calories": "516 kcal",
+    "fatContent": "36 g",
     "carbohydrateContent": "23 g",
     "proteinContent": "24 g",
-    "fatContent": "36 g",
     "sodiumContent": "453 mg",
     "fiberContent": "1 g"
   },
diff --git a/tests/test_data/budgetbytes.com/budgetbytes_groups.json b/tests/test_data/budgetbytes.com/budgetbytes_groups.json
index e890a1f1..d29dbc84 100644
--- a/tests/test_data/budgetbytes.com/budgetbytes_groups.json
+++ b/tests/test_data/budgetbytes.com/budgetbytes_groups.json
@@ -61,11 +61,11 @@
   "nutrients": {
     "servingSize": "1.25 Cups",
     "calories": "494.13 kcal",
+    "fatContent": "8.18 g",
     "carbohydrateContent": "83.93 g",
     "proteinContent": "17.83 g",
-    "fatContent": "8.18 g",
-    "fiberContent": "8 g",
-    "sodiumContent": "844.08 mg"
+    "sodiumContent": "844.08 mg",
+    "fiberContent": "8 g"
   },
   "image": "https://www.budgetbytes.com/wp-content/uploads/2019/07/Creamy-Coconut-Curry-Lentils-with-Spinach-dip-naan.jpg",
   "keywords": [
diff --git a/tests/test_data/cafedelites.com/cafedelites_1.json b/tests/test_data/cafedelites.com/cafedelites_1.json
index e2602883..cc0f8c4e 100644
--- a/tests/test_data/cafedelites.com/cafedelites_1.json
+++ b/tests/test_data/cafedelites.com/cafedelites_1.json
@@ -66,16 +66,16 @@
   "ratings": 5.0,
   "ratings_count": 4,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "121 kcal",
-    "carbohydrateContent": "17 g",
-    "proteinContent": "1 g",
     "fatContent": "5 g",
     "saturatedFatContent": "3 g",
-    "cholesterolContent": "31 mg",
+    "carbohydrateContent": "17 g",
+    "sugarContent": "11 g",
+    "proteinContent": "1 g",
     "sodiumContent": "67 mg",
     "fiberContent": "1 g",
-    "sugarContent": "11 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "31 mg"
   },
   "image": "https://cafedelites.com/wp-content/uploads/2020/05/Churros-IMAGE-121.jpg",
   "keywords": [
diff --git a/tests/test_data/cafedelites.com/cafedelites_2.json b/tests/test_data/cafedelites.com/cafedelites_2.json
index b7706071..9fd0b57f 100644
--- a/tests/test_data/cafedelites.com/cafedelites_2.json
+++ b/tests/test_data/cafedelites.com/cafedelites_2.json
@@ -34,16 +34,16 @@
   "ratings": 5.0,
   "ratings_count": 19,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "284 kcal",
-    "carbohydrateContent": "17 g",
-    "proteinContent": "9 g",
     "fatContent": "16 g",
     "saturatedFatContent": "10 g",
-    "cholesterolContent": "54 mg",
+    "carbohydrateContent": "17 g",
+    "sugarContent": "1 g",
+    "proteinContent": "9 g",
     "sodiumContent": "732 mg",
     "fiberContent": "5 g",
-    "sugarContent": "1 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "54 mg"
   },
   "image": "https://cafedelites.com/wp-content/uploads/2017/12/Easy-Creamy-Mashed-Potatoes-IMAGE-14.jpg",
   "keywords": [
diff --git a/tests/test_data/castironketo.net/castironketo.json b/tests/test_data/castironketo.net/castironketo.json
index 92e8ba20..b5a4c28b 100644
--- a/tests/test_data/castironketo.net/castironketo.json
+++ b/tests/test_data/castironketo.net/castironketo.json
@@ -35,17 +35,17 @@
   "ratings": 4.78,
   "ratings_count": 9,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "563 kcal",
-    "carbohydrateContent": "4 g",
-    "proteinContent": "39 g",
     "fatContent": "43 g",
     "saturatedFatContent": "21 g",
     "transFatContent": "1 g",
-    "cholesterolContent": "188 mg",
+    "carbohydrateContent": "4 g",
+    "sugarContent": "2 g",
+    "proteinContent": "39 g",
     "sodiumContent": "869 mg",
     "fiberContent": "1 g",
-    "sugarContent": "2 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "188 mg"
   },
   "image": "https://www.castironketo.net/wp-content/uploads/2021/01/Keto-Jalapeño-Popper-Casserole.jpg",
   "keywords": [
diff --git a/tests/test_data/celebratingsweets.com/celebratingsweets_1.json b/tests/test_data/celebratingsweets.com/celebratingsweets_1.json
index 66d644a8..50abcc07 100644
--- a/tests/test_data/celebratingsweets.com/celebratingsweets_1.json
+++ b/tests/test_data/celebratingsweets.com/celebratingsweets_1.json
@@ -32,16 +32,16 @@
   "ratings": 5.0,
   "ratings_count": 8,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "399 kcal",
-    "carbohydrateContent": "46 g",
-    "proteinContent": "5 g",
     "fatContent": "22 g",
     "saturatedFatContent": "13 g",
-    "cholesterolContent": "81 mg",
+    "carbohydrateContent": "46 g",
+    "sugarContent": "26 g",
+    "proteinContent": "5 g",
     "sodiumContent": "279 mg",
     "fiberContent": "3 g",
-    "sugarContent": "26 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "81 mg"
   },
   "image": "https://celebratingsweets.com/wp-content/uploads/2015/06/Berries-Cream-Trifle-2.jpg",
   "keywords": [
diff --git a/tests/test_data/celebratingsweets.com/celebratingsweets_2.json b/tests/test_data/celebratingsweets.com/celebratingsweets_2.json
index 3b641eca..8e6d0a93 100644
--- a/tests/test_data/celebratingsweets.com/celebratingsweets_2.json
+++ b/tests/test_data/celebratingsweets.com/celebratingsweets_2.json
@@ -68,16 +68,16 @@
   "ratings": 5.0,
   "ratings_count": 18,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "341 kcal",
-    "carbohydrateContent": "62 g",
-    "proteinContent": "4 g",
     "fatContent": "11 g",
     "saturatedFatContent": "8 g",
-    "cholesterolContent": "2 mg",
+    "carbohydrateContent": "62 g",
+    "sugarContent": "45 g",
+    "proteinContent": "4 g",
     "sodiumContent": "197 mg",
     "fiberContent": "3 g",
-    "sugarContent": "45 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "2 mg"
   },
   "image": "https://celebratingsweets.com/wp-content/uploads/2020/01/Chocolate-Pudding-Cake-1-4.jpg",
   "keywords": [
diff --git a/tests/test_data/chefkoch.de/chefkoch.json b/tests/test_data/chefkoch.de/chefkoch.json
index ad5a9250..1052dc2d 100644
--- a/tests/test_data/chefkoch.de/chefkoch.json
+++ b/tests/test_data/chefkoch.de/chefkoch.json
@@ -41,9 +41,9 @@
   "nutrients": {
     "servingSize": "1",
     "calories": "731 kcal",
-    "proteinContent": "36,04g",
     "fatContent": "58,93g",
-    "carbohydrateContent": "15,39g"
+    "carbohydrateContent": "15,39g",
+    "proteinContent": "36,04g"
   },
   "image": "https://img.chefkoch-cdn.de/rezepte/1170311223132029/bilder/1508325/crop-960x540/hackbraten-supersaftig.jpg",
   "keywords": [
diff --git a/tests/test_data/chefsavvy.com/chefsavvy.json b/tests/test_data/chefsavvy.com/chefsavvy.json
index be41bf68..68c37067 100644
--- a/tests/test_data/chefsavvy.com/chefsavvy.json
+++ b/tests/test_data/chefsavvy.com/chefsavvy.json
@@ -33,16 +33,16 @@
   "ratings": 4.67,
   "ratings_count": 18,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "711 kcal",
-    "carbohydrateContent": "43 g",
-    "proteinContent": "54 g",
     "fatContent": "39 g",
     "saturatedFatContent": "15 g",
-    "cholesterolContent": "154 mg",
+    "carbohydrateContent": "43 g",
+    "sugarContent": "19 g",
+    "proteinContent": "54 g",
     "sodiumContent": "1828 mg",
     "fiberContent": "8 g",
-    "sugarContent": "19 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "154 mg"
   },
   "image": "https://chefsavvy.com/wp-content/uploads/easy-slow-cooker-broccoli-beef.jpg",
   "keywords": [
diff --git a/tests/test_data/closetcooking.com/closetcooking.json b/tests/test_data/closetcooking.com/closetcooking.json
index 91c6d233..3df5d3a3 100644
--- a/tests/test_data/closetcooking.com/closetcooking.json
+++ b/tests/test_data/closetcooking.com/closetcooking.json
@@ -33,12 +33,12 @@
     "fatContent": "Fat 32g",
     "saturatedFatContent": "Saturated 13g",
     "transFatContent": "Trans 0.2g",
-    "cholesterolContent": "Cholesterol 117mg",
-    "sodiumContent": "Sodium 361mg",
     "carbohydrateContent": "Carbs 4g",
-    "fiberContent": "Fiber 0.4g",
     "sugarContent": "Sugars 2g",
-    "proteinContent": "Protein 25g"
+    "proteinContent": "Protein 25g",
+    "sodiumContent": "Sodium 361mg",
+    "fiberContent": "Fiber 0.4g",
+    "cholesterolContent": "Cholesterol 117mg"
   },
   "image": "data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20250%20375'%3E%3C/svg%3E"
 }
diff --git a/tests/test_data/comidinhasdochef.com/comidinhasdochef.json b/tests/test_data/comidinhasdochef.com/comidinhasdochef.json
index 377f6470..79f6c2e4 100644
--- a/tests/test_data/comidinhasdochef.com/comidinhasdochef.json
+++ b/tests/test_data/comidinhasdochef.com/comidinhasdochef.json
@@ -44,16 +44,16 @@
   "ratings": 4.8,
   "ratings_count": 75,
   "nutrients": {
-    "calories": "163 kcal",
-    "carbohydrateContent": "1.2 g",
-    "fiberContent": "0.2 g",
-    "proteinContent": "15 g",
     "servingSize": "5",
-    "sodiumContent": "355 mg",
+    "calories": "163 kcal",
+    "fatContent": "10 g",
     "saturatedFatContent": "2.9 g",
     "unsaturatedFatContent": "4.8 g",
     "transFatContent": "0 g",
-    "fatContent": "10 g"
+    "carbohydrateContent": "1.2 g",
+    "proteinContent": "15 g",
+    "sodiumContent": "355 mg",
+    "fiberContent": "0.2 g"
   },
   "dietary_restrictions": [
     "Diabetic Diet",
diff --git a/tests/test_data/cookeatshare.com/cookeatshare.json b/tests/test_data/cookeatshare.com/cookeatshare.json
index 6b4a73f0..3ba00522 100644
--- a/tests/test_data/cookeatshare.com/cookeatshare.json
+++ b/tests/test_data/cookeatshare.com/cookeatshare.json
@@ -24,14 +24,14 @@
     "servingSize": "265 g",
     "calories": "283",
     "fatContent": "8.91 g",
-    "transFatContent": "0.06 g",
     "saturatedFatContent": "3.12 g",
-    "cholesterolContent": "93 g",
-    "sodiumContent": "692 g",
+    "transFatContent": "0.06 g",
     "carbohydrateContent": "17.91 g",
-    "fiberContent": "2.3 g",
     "sugarContent": "1.28 g",
-    "proteinContent": "31.16 g"
+    "proteinContent": "31.16 g",
+    "sodiumContent": "692 g",
+    "fiberContent": "2.3 g",
+    "cholesterolContent": "93 g"
   },
   "image": "https://assets.cookeatshare.com/assets/recipe-art/stock/3/full-f1e2882559f1146065432f8bdd182440.png"
 }
diff --git a/tests/test_data/cookieandkate.com/cookieandkate.json b/tests/test_data/cookieandkate.com/cookieandkate.json
index d07a5eb7..dc57ff3e 100644
--- a/tests/test_data/cookieandkate.com/cookieandkate.json
+++ b/tests/test_data/cookieandkate.com/cookieandkate.json
@@ -39,14 +39,14 @@
   "nutrients": {
     "servingSize": "1 slice",
     "calories": "153 calories",
-    "sugarContent": "1.1 g",
-    "sodiumContent": "316 mg",
     "fatContent": "10.9 g",
     "saturatedFatContent": "4.6 g",
     "transFatContent": "0 g",
     "carbohydrateContent": "3.7 g",
-    "fiberContent": "1 g",
+    "sugarContent": "1.1 g",
     "proteinContent": "6.7 g",
+    "sodiumContent": "316 mg",
+    "fiberContent": "1 g",
     "cholesterolContent": "178.6 mg"
   },
   "image": "https://cookieandkate.com/images/2017/02/broccoli-cheddar-frittata-225x225.jpg",
diff --git a/tests/test_data/cooking.nytimes.com/nytimes.json b/tests/test_data/cooking.nytimes.com/nytimes.json
index c24e76a5..1fe7bd30 100644
--- a/tests/test_data/cooking.nytimes.com/nytimes.json
+++ b/tests/test_data/cooking.nytimes.com/nytimes.json
@@ -38,15 +38,15 @@
   "ratings_count": 228,
   "nutrients": {
     "calories": "233",
+    "fatContent": "14 grams",
+    "saturatedFatContent": "9 grams",
     "unsaturatedFatContent": "4 grams",
+    "transFatContent": "0 grams",
     "carbohydrateContent": "16 grams",
-    "fatContent": "14 grams",
-    "fiberContent": "1 gram",
+    "sugarContent": "0 grams",
     "proteinContent": "10 grams",
-    "saturatedFatContent": "9 grams",
     "sodiumContent": "282 milligrams",
-    "sugarContent": "0 grams",
-    "transFatContent": "0 grams"
+    "fiberContent": "1 gram"
   },
   "image": "https://static01.nyt.com/images/2020/05/28/dining/lp-cacio-e-pepe-crackers/merlin_172657737_693784a8-529d-4496-9e60-3ff2af3c7735-mediumSquareAt3X.jpg",
   "keywords": [
diff --git a/tests/test_data/cooking.nytimes.com/nytimes_groups.json b/tests/test_data/cooking.nytimes.com/nytimes_groups.json
index 1f5ec359..034bb1a4 100644
--- a/tests/test_data/cooking.nytimes.com/nytimes_groups.json
+++ b/tests/test_data/cooking.nytimes.com/nytimes_groups.json
@@ -78,15 +78,15 @@
   "ratings_count": 559,
   "nutrients": {
     "calories": "656",
+    "fatContent": "27 grams",
+    "saturatedFatContent": "10 grams",
     "unsaturatedFatContent": "14 grams",
+    "transFatContent": "0 grams",
     "carbohydrateContent": "86 grams",
-    "fatContent": "27 grams",
-    "fiberContent": "12 grams",
+    "sugarContent": "8 grams",
     "proteinContent": "22 grams",
-    "saturatedFatContent": "10 grams",
     "sodiumContent": "1201 milligrams",
-    "sugarContent": "8 grams",
-    "transFatContent": "0 grams"
+    "fiberContent": "12 grams"
   },
   "image": "https://static01.nyt.com/images/2023/07/14/multimedia/14EVERYDAY-VEGETABLESrex1-pvqb/14EVERYDAY-VEGETABLESrex1-pvqb-mediumSquareAt3X.jpg",
   "keywords": [
diff --git a/tests/test_data/cookinglight.com/cookinglight.json b/tests/test_data/cookinglight.com/cookinglight.json
index 4daa97db..50aebacc 100644
--- a/tests/test_data/cookinglight.com/cookinglight.json
+++ b/tests/test_data/cookinglight.com/cookinglight.json
@@ -16,14 +16,14 @@
   "ratings": null,
   "nutrients": {
     "calories": "428",
-    "carbohydrateContent": "53 g",
     "fatContent": "19 g",
-    "fiberContent": "17 g",
-    "proteinContent": "17 g",
     "saturatedFatContent": "3 g",
-    "sodiumContent": "709 mg",
+    "unsaturatedFatContent": "15 g",
+    "carbohydrateContent": "53 g",
     "sugarContent": "14 g",
-    "unsaturatedFatContent": "15 g"
+    "proteinContent": "17 g",
+    "sodiumContent": "709 mg",
+    "fiberContent": "17 g"
   },
   "image": "https://imagesvc.meredithcorp.io/v3/mm/image?url=https%3A%2F%2Fimg1.cookinglight.timeinc.net%2Fsites%2Fdefault%2Ffiles%2Fstyles%2F4_3_horizontal_-_1200x900%2Fpublic%2F1542730855%2Favocado-black-bean-and-charred-tomato-bowl-detox-book-p28.jpg%3Fitok%3D7dflTpmM"
 }
diff --git a/tests/test_data/cookscountry.com/cookscountry.json b/tests/test_data/cookscountry.com/cookscountry.json
index c3c80395..74871b6c 100644
--- a/tests/test_data/cookscountry.com/cookscountry.json
+++ b/tests/test_data/cookscountry.com/cookscountry.json
@@ -75,15 +75,15 @@
   "ratings": 4.2,
   "nutrients": {
     "calories": "687",
-    "carbohydrateContent": "60 grams",
-    "cholesterolContent": "91 miligrams",
     "fatContent": "31 grams",
-    "proteinContent": "36 grams",
     "saturatedFatContent": "13 grams",
-    "sodiumContent": "987 miligrams",
-    "sugarContent": "4 grams",
+    "unsaturatedFatContent": "11 grams",
     "transFatContent": "0 grams",
-    "unsaturatedFatContent": "11 grams"
+    "carbohydrateContent": "60 grams",
+    "sugarContent": "4 grams",
+    "proteinContent": "36 grams",
+    "sodiumContent": "987 miligrams",
+    "cholesterolContent": "91 miligrams"
   },
   "image": "https://res.cloudinary.com/hksqkdlah/image/upload/ar_1:1,c_fill,dpr_2.0,f_auto,fl_lossy.progressive.strip_profile,g_faces:auto,q_auto:low,w_150/23411_sfs-beef-and-bean-burritos-012"
 }
diff --git a/tests/test_data/cooksillustrated.com/cooksillustrated.json b/tests/test_data/cooksillustrated.com/cooksillustrated.json
index 9bdeeccf..1892e346 100644
--- a/tests/test_data/cooksillustrated.com/cooksillustrated.json
+++ b/tests/test_data/cooksillustrated.com/cooksillustrated.json
@@ -24,15 +24,15 @@
   "ratings": 4.5,
   "nutrients": {
     "calories": "207",
-    "carbohydrateContent": "1 grams",
-    "cholesterolContent": "61 miligrams",
     "fatContent": "23 grams",
-    "proteinContent": "0 grams",
     "saturatedFatContent": "14 grams",
-    "sodiumContent": "126 miligrams",
-    "sugarContent": "0 grams",
+    "unsaturatedFatContent": "7 grams",
     "transFatContent": "0 grams",
-    "unsaturatedFatContent": "7 grams"
+    "carbohydrateContent": "1 grams",
+    "sugarContent": "0 grams",
+    "proteinContent": "0 grams",
+    "sodiumContent": "126 miligrams",
+    "cholesterolContent": "61 miligrams"
   },
   "image": "https://res.cloudinary.com/hksqkdlah/image/upload/ar_1:1,c_fill,dpr_2.0,f_auto,fl_lossy.progressive.strip_profile,g_faces:auto,q_auto:low,w_150/SFS_Savory_Orange_Beurre_Monte%CC%81_2_awjobu"
 }
diff --git a/tests/test_data/copykat.com/copykat.json b/tests/test_data/copykat.com/copykat.json
index a35511f5..a8f2b1dc 100644
--- a/tests/test_data/copykat.com/copykat.json
+++ b/tests/test_data/copykat.com/copykat.json
@@ -38,16 +38,16 @@
   "ratings": 5.0,
   "ratings_count": 3,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "495 kcal",
-    "carbohydrateContent": "46 g",
-    "proteinContent": "36 g",
     "fatContent": "17 g",
     "saturatedFatContent": "8 g",
-    "cholesterolContent": "93 mg",
+    "carbohydrateContent": "46 g",
+    "sugarContent": "2 g",
+    "proteinContent": "36 g",
     "sodiumContent": "682 mg",
     "fiberContent": "2 g",
-    "sugarContent": "2 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "93 mg"
   },
   "image": "https://copykat.com/wp-content/uploads/2020/11/Beef-Tips-and-Gravy-Pin2.jpg",
   "keywords": [
diff --git a/tests/test_data/delish.com/delish_2.json b/tests/test_data/delish.com/delish_2.json
index 75481d3a..2c75d5e0 100644
--- a/tests/test_data/delish.com/delish_2.json
+++ b/tests/test_data/delish.com/delish_2.json
@@ -68,12 +68,12 @@
     "fatContent": "4 g",
     "saturatedFatContent": "2 g",
     "transFatContent": "0 g",
-    "cholesterolContent": "18 mg",
-    "sodiumContent": "87 mg",
     "carbohydrateContent": "22 g",
-    "fiberContent": "0 g",
     "sugarContent": "15 g",
-    "proteinContent": "1 g"
+    "proteinContent": "1 g",
+    "sodiumContent": "87 mg",
+    "fiberContent": "0 g",
+    "cholesterolContent": "18 mg"
   },
   "image": "https://hips.hearstapps.com/hmg-prod/images/apple-cookies1-1656349038.jpg?crop=0.681xw:1.00xh;0.0696xw,0&resize=1200:*",
   "keywords": [
diff --git a/tests/test_data/dinneratthezoo.com/dinneratthezoo.json b/tests/test_data/dinneratthezoo.com/dinneratthezoo.json
index cc15ec07..f21e3251 100644
--- a/tests/test_data/dinneratthezoo.com/dinneratthezoo.json
+++ b/tests/test_data/dinneratthezoo.com/dinneratthezoo.json
@@ -35,13 +35,13 @@
   "ratings": 5.0,
   "ratings_count": 31,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "206 kcal",
-    "cholesterolContent": "285 mg",
-    "proteinContent": "23 g",
     "fatContent": "10 g",
     "saturatedFatContent": "2 g",
-    "servingSize": "1 serving",
-    "sodiumContent": "1317 mg"
+    "proteinContent": "23 g",
+    "sodiumContent": "1317 mg",
+    "cholesterolContent": "285 mg"
   },
   "image": "https://www.dinneratthezoo.com/wp-content/uploads/2021/03/grilled-scallops-final-2.jpg",
   "keywords": [
diff --git a/tests/test_data/dinnerthendessert.com/dinnerthendessert_1.json b/tests/test_data/dinnerthendessert.com/dinnerthendessert_1.json
index ae5960cb..70183a92 100644
--- a/tests/test_data/dinnerthendessert.com/dinnerthendessert_1.json
+++ b/tests/test_data/dinnerthendessert.com/dinnerthendessert_1.json
@@ -32,18 +32,18 @@
   "prep_time": 240,
   "cuisine": "American",
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "370 kcal",
-    "carbohydrateContent": "13 g",
-    "proteinContent": "24 g",
     "fatContent": "24 g",
     "saturatedFatContent": "7 g",
+    "unsaturatedFatContent": "15 g",
     "transFatContent": "1 g",
-    "cholesterolContent": "142 mg",
+    "carbohydrateContent": "13 g",
+    "sugarContent": "11 g",
+    "proteinContent": "24 g",
     "sodiumContent": "474 mg",
     "fiberContent": "1 g",
-    "sugarContent": "11 g",
-    "unsaturatedFatContent": "15 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "142 mg"
   },
   "image": "https://dinnerthendessert.com/wp-content/uploads/2022/07/Baked-Sweet-and-Spicy-Honey-Chicken-1x1-1.jpg",
   "keywords": [
diff --git a/tests/test_data/dinnerthendessert.com/dinnerthendessert_2.json b/tests/test_data/dinnerthendessert.com/dinnerthendessert_2.json
index ba24ade1..da7704df 100644
--- a/tests/test_data/dinnerthendessert.com/dinnerthendessert_2.json
+++ b/tests/test_data/dinnerthendessert.com/dinnerthendessert_2.json
@@ -75,17 +75,17 @@
   "prep_time": 8,
   "cuisine": "American",
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "378 kcal",
-    "carbohydrateContent": "46 g",
-    "proteinContent": "10 g",
     "fatContent": "18 g",
     "saturatedFatContent": "11 g",
     "transFatContent": "1 g",
-    "cholesterolContent": "57 mg",
+    "carbohydrateContent": "46 g",
+    "sugarContent": "5 g",
+    "proteinContent": "10 g",
     "sodiumContent": "825 mg",
     "fiberContent": "4 g",
-    "sugarContent": "5 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "57 mg"
   },
   "image": "https://dinnerthendessert.com/wp-content/uploads/2022/02/Corn-Chowder-with-Cornmeal-Dumplings-12-1x1-1.jpg",
   "keywords": [
diff --git a/tests/test_data/downshiftology.com/downshiftology.json b/tests/test_data/downshiftology.com/downshiftology.json
index cff90e91..6891f4f4 100644
--- a/tests/test_data/downshiftology.com/downshiftology.json
+++ b/tests/test_data/downshiftology.com/downshiftology.json
@@ -44,16 +44,16 @@
     "Lodge Indoor Grill"
   ],
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "135 kcal",
-    "carbohydrateContent": "11 g",
-    "proteinContent": "10 g",
     "fatContent": "6 g",
     "saturatedFatContent": "1 g",
-    "cholesterolContent": "24 mg",
+    "carbohydrateContent": "11 g",
+    "sugarContent": "6 g",
+    "proteinContent": "10 g",
     "sodiumContent": "460 mg",
     "fiberContent": "3 g",
-    "sugarContent": "6 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "24 mg"
   },
   "image": "https://i2.wp.com/www.downshiftology.com/wp-content/uploads/2020/09/Greek-Chicken-Kabobs-main-1.jpg",
   "keywords": [
diff --git a/tests/test_data/eatingbirdfood.com/eatingbirdfood.json b/tests/test_data/eatingbirdfood.com/eatingbirdfood.json
index 48d3a3b2..af5ac99e 100644
--- a/tests/test_data/eatingbirdfood.com/eatingbirdfood.json
+++ b/tests/test_data/eatingbirdfood.com/eatingbirdfood.json
@@ -40,15 +40,15 @@
   "nutrients": {
     "servingSize": "1 /4 of recipe",
     "calories": "284 kcal",
-    "sugarContent": "8 g",
-    "sodiumContent": "620 mg",
     "fatContent": "18 g",
     "saturatedFatContent": "6 g",
+    "unsaturatedFatContent": "6 g",
     "carbohydrateContent": "17 g",
-    "fiberContent": "3 g",
+    "sugarContent": "8 g",
     "proteinContent": "14 g",
-    "cholesterolContent": "224 mg",
-    "unsaturatedFatContent": "6 g"
+    "sodiumContent": "620 mg",
+    "fiberContent": "3 g",
+    "cholesterolContent": "224 mg"
   },
   "image": "https://www.eatingbirdfood.com/wp-content/uploads/2020/12/Shakshuka-in-pan.jpg",
   "keywords": [
diff --git a/tests/test_data/eatingwell.com/eatingwell.json b/tests/test_data/eatingwell.com/eatingwell.json
index f984baf8..b4b78977 100644
--- a/tests/test_data/eatingwell.com/eatingwell.json
+++ b/tests/test_data/eatingwell.com/eatingwell.json
@@ -34,15 +34,15 @@
   "ratings_count": 33,
   "nutrients": {
     "calories": "351 kcal",
+    "fatContent": "23 g",
+    "saturatedFatContent": "11 g",
+    "unsaturatedFatContent": "0 g",
     "carbohydrateContent": "11 g",
-    "cholesterolContent": "86 mg",
-    "fiberContent": "3 g",
+    "sugarContent": "4 g",
     "proteinContent": "26 g",
-    "saturatedFatContent": "11 g",
     "sodiumContent": "672 mg",
-    "sugarContent": "4 g",
-    "fatContent": "23 g",
-    "unsaturatedFatContent": "0 g"
+    "fiberContent": "3 g",
+    "cholesterolContent": "86 mg"
   },
   "image": "https://www.eatingwell.com/thmb/32d8L6W6cwt652tjjXAHosP3ViE=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc()/cheesy-ground-beef-and-cauliflower-casserole-8791b22c92404d958e2ac5aa92af8aa7.jpg"
 }
diff --git a/tests/test_data/eatsmarter.com/eatsmarter.json b/tests/test_data/eatsmarter.com/eatsmarter.json
index 81cce952..6fdac87c 100644
--- a/tests/test_data/eatsmarter.com/eatsmarter.json
+++ b/tests/test_data/eatsmarter.com/eatsmarter.json
@@ -38,9 +38,9 @@
     "calories": "345 kcal",
     "fatContent": "21 g",
     "saturatedFatContent": "2.3 g",
-    "proteinContent": "12 g",
     "carbohydrateContent": "26 g",
     "sugarContent": "1 g",
+    "proteinContent": "12 g",
     "cholesterolContent": "0 mg"
   },
   "dietary_restrictions": [
diff --git a/tests/test_data/elavegan.com/elavegan_1.json b/tests/test_data/elavegan.com/elavegan_1.json
index ddb44ad5..aaf00b35 100644
--- a/tests/test_data/elavegan.com/elavegan_1.json
+++ b/tests/test_data/elavegan.com/elavegan_1.json
@@ -41,13 +41,13 @@
   "ratings": 4.95,
   "ratings_count": 125,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "302 kcal",
-    "proteinContent": "14 g",
-    "carbohydrateContent": "35 g",
     "fatContent": "9.7 g",
+    "carbohydrateContent": "35 g",
     "sugarContent": "5.8 g",
-    "fiberContent": "8.1 g",
-    "servingSize": "1 serving"
+    "proteinContent": "14 g",
+    "fiberContent": "8.1 g"
   },
   "image": "https://elavegan.com/wp-content/uploads/2019/10/Red-Lentil-Dhal-with-rice.jpg",
   "keywords": [
diff --git a/tests/test_data/elavegan.com/elavegan_2.json b/tests/test_data/elavegan.com/elavegan_2.json
index cbe9683e..5a3a3270 100644
--- a/tests/test_data/elavegan.com/elavegan_2.json
+++ b/tests/test_data/elavegan.com/elavegan_2.json
@@ -85,15 +85,15 @@
     "8x8 pan"
   ],
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "256 kcal",
-    "carbohydrateContent": "36 g",
-    "proteinContent": "4 g",
     "fatContent": "11 g",
     "saturatedFatContent": "1 g",
-    "sodiumContent": "264 mg",
-    "fiberContent": "2 g",
+    "carbohydrateContent": "36 g",
     "sugarContent": "8 g",
-    "servingSize": "1 serving"
+    "proteinContent": "4 g",
+    "sodiumContent": "264 mg",
+    "fiberContent": "2 g"
   },
   "image": "https://elavegan.com/wp-content/uploads/2022/11/a-piece-of-vegan-coffee-cake-on-a-small-plate.jpg",
   "keywords": [
diff --git a/tests/test_data/errenskitchen.com/errenskitchen.json b/tests/test_data/errenskitchen.com/errenskitchen.json
index 068e998f..fd33a9fe 100644
--- a/tests/test_data/errenskitchen.com/errenskitchen.json
+++ b/tests/test_data/errenskitchen.com/errenskitchen.json
@@ -40,18 +40,18 @@
   "ratings": 5.0,
   "ratings_count": 18,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "1208 kcal",
-    "carbohydrateContent": "98 g",
-    "proteinContent": "64 g",
     "fatContent": "60 g",
     "saturatedFatContent": "21 g",
+    "unsaturatedFatContent": "33 g",
     "transFatContent": "0.2 g",
-    "cholesterolContent": "268 mg",
+    "carbohydrateContent": "98 g",
+    "sugarContent": "11 g",
+    "proteinContent": "64 g",
     "sodiumContent": "752 mg",
     "fiberContent": "5 g",
-    "sugarContent": "11 g",
-    "unsaturatedFatContent": "33 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "268 mg"
   },
   "image": "https://www.errenskitchen.com/wp-content/uploads/2022/05/Chicken-Sundried-Tomato-Pasta-06.jpg",
   "keywords": [
diff --git a/tests/test_data/evolvingtable.com/evolvingtable_1.json b/tests/test_data/evolvingtable.com/evolvingtable_1.json
index ca5d5b04..58b06b51 100644
--- a/tests/test_data/evolvingtable.com/evolvingtable_1.json
+++ b/tests/test_data/evolvingtable.com/evolvingtable_1.json
@@ -25,15 +25,15 @@
   "ratings": 4.8,
   "ratings_count": 5,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "96 kcal",
-    "carbohydrateContent": "1 g",
-    "proteinContent": "1 g",
     "fatContent": "10 g",
     "saturatedFatContent": "2 g",
-    "cholesterolContent": "6 mg",
-    "sodiumContent": "211 mg",
+    "carbohydrateContent": "1 g",
     "sugarContent": "1 g",
-    "servingSize": "1 serving"
+    "proteinContent": "1 g",
+    "sodiumContent": "211 mg",
+    "cholesterolContent": "6 mg"
   },
   "image": "https://www.evolvingtable.com/wp-content/uploads/2023/02/Sriracha-Mayo-12.jpg",
   "keywords": [
diff --git a/tests/test_data/evolvingtable.com/evolvingtable_2.json b/tests/test_data/evolvingtable.com/evolvingtable_2.json
index 60792425..e1f3f5e0 100644
--- a/tests/test_data/evolvingtable.com/evolvingtable_2.json
+++ b/tests/test_data/evolvingtable.com/evolvingtable_2.json
@@ -63,16 +63,16 @@
   "ratings": 5.0,
   "ratings_count": 5,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "366 kcal",
-    "carbohydrateContent": "23 g",
-    "proteinContent": "29 g",
     "fatContent": "18 g",
-    "fiberContent": "2 g",
     "saturatedFatContent": "5 g",
-    "cholesterolContent": "129 mg",
-    "sodiumContent": "688 mg",
+    "carbohydrateContent": "23 g",
     "sugarContent": "9 g",
-    "servingSize": "1 serving"
+    "proteinContent": "29 g",
+    "sodiumContent": "688 mg",
+    "fiberContent": "2 g",
+    "cholesterolContent": "129 mg"
   },
   "image": "https://www.evolvingtable.com/wp-content/uploads/2018/03/Chicken-Tenders-Paleo-6.jpg"
 }
diff --git a/tests/test_data/familyfoodonthetable.com/familyfoodonthetable_1.json b/tests/test_data/familyfoodonthetable.com/familyfoodonthetable_1.json
index 121f0862..f3728b06 100644
--- a/tests/test_data/familyfoodonthetable.com/familyfoodonthetable_1.json
+++ b/tests/test_data/familyfoodonthetable.com/familyfoodonthetable_1.json
@@ -53,18 +53,18 @@
   "ratings": 4.4,
   "ratings_count": 2879,
   "nutrients": {
+    "servingSize": "1",
     "calories": "360 calories",
-    "carbohydrateContent": "15 grams carbohydrates",
-    "cholesterolContent": "145 milligrams cholesterol",
     "fatContent": "8 grams fat",
-    "fiberContent": "0 grams fiber",
-    "proteinContent": "54 grams protein",
     "saturatedFatContent": "2 grams saturated fat",
-    "servingSize": "1",
-    "sodiumContent": "665 milligrams sodium",
-    "sugarContent": "13 grams sugar",
+    "unsaturatedFatContent": "5 grams unsaturated fat",
     "transFatContent": "0 grams trans fat",
-    "unsaturatedFatContent": "5 grams unsaturated fat"
+    "carbohydrateContent": "15 grams carbohydrates",
+    "sugarContent": "13 grams sugar",
+    "proteinContent": "54 grams protein",
+    "sodiumContent": "665 milligrams sodium",
+    "fiberContent": "0 grams fiber",
+    "cholesterolContent": "145 milligrams cholesterol"
   },
   "image": "https://familyfoodonthetable.com/wp-content/uploads/2016/09/15-minute-honey-garlic-chicken-square-480x480.png",
   "keywords": [
diff --git a/tests/test_data/familyfoodonthetable.com/familyfoodonthetable_2.json b/tests/test_data/familyfoodonthetable.com/familyfoodonthetable_2.json
index ea436851..7ba89fb2 100644
--- a/tests/test_data/familyfoodonthetable.com/familyfoodonthetable_2.json
+++ b/tests/test_data/familyfoodonthetable.com/familyfoodonthetable_2.json
@@ -60,18 +60,18 @@
   "ratings": 5.0,
   "ratings_count": 2,
   "nutrients": {
+    "servingSize": "1",
     "calories": "766 calories",
-    "carbohydrateContent": "14 grams carbohydrates",
-    "cholesterolContent": "264 milligrams cholesterol",
     "fatContent": "52 grams fat",
-    "fiberContent": "2 grams fiber",
-    "proteinContent": "61 grams protein",
     "saturatedFatContent": "27 grams saturated fat",
-    "servingSize": "1",
-    "sodiumContent": "715 milligrams sodium",
-    "sugarContent": "7 grams sugar",
+    "unsaturatedFatContent": "21 grams unsaturated fat",
     "transFatContent": "1 grams trans fat",
-    "unsaturatedFatContent": "21 grams unsaturated fat"
+    "carbohydrateContent": "14 grams carbohydrates",
+    "sugarContent": "7 grams sugar",
+    "proteinContent": "61 grams protein",
+    "sodiumContent": "715 milligrams sodium",
+    "fiberContent": "2 grams fiber",
+    "cholesterolContent": "264 milligrams cholesterol"
   },
   "dietary_restrictions": [
     "Gluten Free Diet"
diff --git a/tests/test_data/farmhouseonboone.com/farmhouseonboone.json b/tests/test_data/farmhouseonboone.com/farmhouseonboone.json
index e3cc3adf..6342b4d6 100644
--- a/tests/test_data/farmhouseonboone.com/farmhouseonboone.json
+++ b/tests/test_data/farmhouseonboone.com/farmhouseonboone.json
@@ -54,18 +54,18 @@
   "ratings": 4.5,
   "ratings_count": 59,
   "nutrients": {
+    "servingSize": "1",
     "calories": "409 calories",
-    "carbohydrateContent": "36 grams carbohydrates",
-    "cholesterolContent": "87 milligrams cholesterol",
     "fatContent": "28 grams fat",
-    "fiberContent": "1 grams fiber",
-    "proteinContent": "5 grams protein",
     "saturatedFatContent": "17 grams saturated fat",
-    "servingSize": "1",
-    "sodiumContent": "388 milligrams sodium",
-    "sugarContent": "4 grams sugar",
+    "unsaturatedFatContent": "9 grams unsaturated fat",
     "transFatContent": "0 grams trans fat",
-    "unsaturatedFatContent": "9 grams unsaturated fat"
+    "carbohydrateContent": "36 grams carbohydrates",
+    "sugarContent": "4 grams sugar",
+    "proteinContent": "5 grams protein",
+    "sodiumContent": "388 milligrams sodium",
+    "fiberContent": "1 grams fiber",
+    "cholesterolContent": "87 milligrams cholesterol"
   },
   "image": "https://www.farmhouseonboone.com/wp-content/uploads/2022/09/sourdough-croissants-11-2-scaled-720x720.jpg",
   "keywords": [
diff --git a/tests/test_data/feastingathome.com/feastingathome.json b/tests/test_data/feastingathome.com/feastingathome.json
index 86bf2f66..ff5afc72 100644
--- a/tests/test_data/feastingathome.com/feastingathome.json
+++ b/tests/test_data/feastingathome.com/feastingathome.json
@@ -52,14 +52,14 @@
   "nutrients": {
     "servingSize": "1 ½ cup serving without shrimp",
     "calories": "435 calories",
-    "sugarContent": "6.9 g",
-    "sodiumContent": "943.1 mg",
     "fatContent": "12.1 g",
     "saturatedFatContent": "3.8 g",
     "transFatContent": "0 g",
     "carbohydrateContent": "73.1 g",
-    "fiberContent": "2.8 g",
+    "sugarContent": "6.9 g",
     "proteinContent": "9 g",
+    "sodiumContent": "943.1 mg",
+    "fiberContent": "2.8 g",
     "cholesterolContent": "11.2 mg"
   },
   "image": "https://www.feastingathome.com/wp-content/uploads/2020/07/Tomato-Risotto_-20-225x225.jpg",
diff --git a/tests/test_data/fifteenspatulas.com/fifteenspatulas.json b/tests/test_data/fifteenspatulas.com/fifteenspatulas.json
index 8877e67f..851afc54 100644
--- a/tests/test_data/fifteenspatulas.com/fifteenspatulas.json
+++ b/tests/test_data/fifteenspatulas.com/fifteenspatulas.json
@@ -36,15 +36,15 @@
   "ratings": 5.0,
   "ratings_count": 10,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "458 kcal",
-    "carbohydrateContent": "4 g",
-    "proteinContent": "5 g",
     "fatContent": "48 g",
     "saturatedFatContent": "29 g",
-    "cholesterolContent": "317 mg",
-    "sodiumContent": "52 mg",
+    "carbohydrateContent": "4 g",
     "sugarContent": "1 g",
-    "servingSize": "1 serving"
+    "proteinContent": "5 g",
+    "sodiumContent": "52 mg",
+    "cholesterolContent": "317 mg"
   },
   "dietary_restrictions": [
     "Gluten Free Diet",
diff --git a/tests/test_data/fitslowcookerqueen.com/fitslowcookerqueen_1.json b/tests/test_data/fitslowcookerqueen.com/fitslowcookerqueen_1.json
index 03d31620..e22b66bb 100644
--- a/tests/test_data/fitslowcookerqueen.com/fitslowcookerqueen_1.json
+++ b/tests/test_data/fitslowcookerqueen.com/fitslowcookerqueen_1.json
@@ -33,14 +33,14 @@
   "prep_time": 10,
   "nutrients": {
     "calories": "131 calories",
-    "sugarContent": "2 g",
-    "sodiumContent": "82.4 mg",
     "fatContent": "4.5 g",
     "saturatedFatContent": "1 g",
     "transFatContent": "0 g",
     "carbohydrateContent": "5.6 g",
-    "fiberContent": "1.3 g",
+    "sugarContent": "2 g",
     "proteinContent": "16.6 g",
+    "sodiumContent": "82.4 mg",
+    "fiberContent": "1.3 g",
     "cholesterolContent": "70 mg"
   },
   "image": "https://fitslowcookerqueen.com/wp-content/uploads/2018/08/Slow-Cooker-Instant-Pot-Rosemary-Dijon-Chicken-Low-Carb-PaleoWhole30-6-225x225.jpg"
diff --git a/tests/test_data/fitslowcookerqueen.com/fitslowcookerqueen_2.json b/tests/test_data/fitslowcookerqueen.com/fitslowcookerqueen_2.json
index f5f95f64..2deafedc 100644
--- a/tests/test_data/fitslowcookerqueen.com/fitslowcookerqueen_2.json
+++ b/tests/test_data/fitslowcookerqueen.com/fitslowcookerqueen_2.json
@@ -62,14 +62,14 @@
   "ratings_count": 4,
   "nutrients": {
     "calories": "544 calories",
-    "sugarContent": "36.2 g",
-    "sodiumContent": "442.8 mg",
     "fatContent": "6.4 g",
     "saturatedFatContent": "1.4 g",
     "transFatContent": "0 g",
     "carbohydrateContent": "66.1 g",
-    "fiberContent": "5 g",
+    "sugarContent": "36.2 g",
     "proteinContent": "55.6 g",
+    "sodiumContent": "442.8 mg",
+    "fiberContent": "5 g",
     "cholesterolContent": "165.5 mg"
   },
   "image": "https://fitslowcookerqueen.com/wp-content/uploads/2019/08/VIDEO-Slow-CookerInstant-Pot-Chicken-with-Apples-Honey-Paleo-4-225x225.jpg"
diff --git a/tests/test_data/food.com/food.json b/tests/test_data/food.com/food.json
index 1ce6f3c9..f89c70a5 100644
--- a/tests/test_data/food.com/food.json
+++ b/tests/test_data/food.com/food.json
@@ -32,12 +32,12 @@
     "calories": "213.6",
     "fatContent": "6.9",
     "saturatedFatContent": "2",
-    "cholesterolContent": "31.2",
-    "sodiumContent": "1086.5",
     "carbohydrateContent": "21.3",
-    "fiberContent": "2.7",
     "sugarContent": "4.9",
-    "proteinContent": "19.5"
+    "proteinContent": "19.5",
+    "sodiumContent": "1086.5",
+    "fiberContent": "2.7",
+    "cholesterolContent": "31.2"
   },
   "image": "https://img.sndimg.com/food/image/upload/q_92,fl_progressive,w_1200,c_scale/v1/img/recipes/45/44/15/IoYo06IEQoD16Ti6nVPV_parsnip-chicken-noodle-soup-5210.jpg",
   "keywords": [
diff --git a/tests/test_data/foodfidelity.com/foodfidelity.json b/tests/test_data/foodfidelity.com/foodfidelity.json
index e5e49ab3..78450c27 100644
--- a/tests/test_data/foodfidelity.com/foodfidelity.json
+++ b/tests/test_data/foodfidelity.com/foodfidelity.json
@@ -30,16 +30,16 @@
   "ratings": 5.0,
   "ratings_count": 11,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "304 kcal",
-    "carbohydrateContent": "52 g",
-    "proteinContent": "7 g",
     "fatContent": "8 g",
     "saturatedFatContent": "3 g",
-    "cholesterolContent": "10 mg",
+    "carbohydrateContent": "52 g",
+    "sugarContent": "21 g",
+    "proteinContent": "7 g",
     "sodiumContent": "186 mg",
     "fiberContent": "5 g",
-    "sugarContent": "21 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "10 mg"
   },
   "image": "https://www.foodfidelity.com/wp-content/uploads/2020/06/stovetop-Orange-juice-oatmeal-w-strawberries-tight-1.jpg",
   "keywords": [
diff --git a/tests/test_data/forktospoon.com/forktospoon.json b/tests/test_data/forktospoon.com/forktospoon.json
index ae002253..3c15cee5 100644
--- a/tests/test_data/forktospoon.com/forktospoon.json
+++ b/tests/test_data/forktospoon.com/forktospoon.json
@@ -40,15 +40,15 @@
   "nutrients": {
     "servingSize": "1 Serving",
     "calories": "126 kcal",
-    "carbohydrateContent": "17 g",
-    "proteinContent": "5 g",
     "fatContent": "5 g",
     "saturatedFatContent": "1 g",
-    "cholesterolContent": "3 mg",
+    "unsaturatedFatContent": "3 g",
+    "carbohydrateContent": "17 g",
+    "sugarContent": "4 g",
+    "proteinContent": "5 g",
     "sodiumContent": "591 mg",
     "fiberContent": "2 g",
-    "sugarContent": "4 g",
-    "unsaturatedFatContent": "3 g"
+    "cholesterolContent": "3 mg"
   },
   "image": "https://forktospoon.com/wp-content/uploads/2023/06/air-fryer-parmesan-tomatoes.png",
   "keywords": [
diff --git a/tests/test_data/gonnawantseconds.com/gonnawantseconds.json b/tests/test_data/gonnawantseconds.com/gonnawantseconds.json
index 906b6afd..db0bc5ab 100644
--- a/tests/test_data/gonnawantseconds.com/gonnawantseconds.json
+++ b/tests/test_data/gonnawantseconds.com/gonnawantseconds.json
@@ -34,14 +34,14 @@
   "nutrients": {
     "servingSize": "1 g",
     "calories": "897 kcal",
-    "carbohydrateContent": "39 g",
-    "proteinContent": "45 g",
     "fatContent": "63 g",
     "saturatedFatContent": "33 g",
-    "cholesterolContent": "191 mg",
+    "carbohydrateContent": "39 g",
+    "sugarContent": "5.5 g",
+    "proteinContent": "45 g",
     "sodiumContent": "1472 mg",
     "fiberContent": "1.5 g",
-    "sugarContent": "5.5 g"
+    "cholesterolContent": "191 mg"
   },
   "image": "https://www.gonnawantseconds.com/wp-content/uploads/2020/08/White-Chicken-Enchiladas-01.jpg",
   "keywords": [
diff --git a/tests/test_data/goodhousekeeping.com/goodhousekeeping_1.json b/tests/test_data/goodhousekeeping.com/goodhousekeeping_1.json
index fd97f746..1b257965 100644
--- a/tests/test_data/goodhousekeeping.com/goodhousekeeping_1.json
+++ b/tests/test_data/goodhousekeeping.com/goodhousekeeping_1.json
@@ -30,8 +30,8 @@
     "calories": "222",
     "fatContent": "20g",
     "saturatedFatContent": "15g",
-    "sugarContent": "6g",
-    "carbohydrateContent": "8g"
+    "carbohydrateContent": "8g",
+    "sugarContent": "6g"
   },
   "image": "https://hips.hearstapps.com/goodhousekeeping-uk/main/embedded/5444/t5-Spiced-Pumpkin-Soup-de.jpg?crop=1.00xw:1.00xh;0,0&resize=1200:*",
   "keywords": [
diff --git a/tests/test_data/goodhousekeeping.com/goodhousekeeping_2.json b/tests/test_data/goodhousekeeping.com/goodhousekeeping_2.json
index 5f9f41f7..a10701c4 100644
--- a/tests/test_data/goodhousekeeping.com/goodhousekeeping_2.json
+++ b/tests/test_data/goodhousekeeping.com/goodhousekeeping_2.json
@@ -61,8 +61,8 @@
     "calories": "508cals",
     "fatContent": "35g",
     "saturatedFatContent": "21g",
-    "sugarContent": "13g",
     "carbohydrateContent": "14g",
+    "sugarContent": "13g",
     "proteinContent": "31g",
     "fiberContent": "5g"
   },
diff --git a/tests/test_data/goodhousekeeping.com/goodhousekeeping_4.json b/tests/test_data/goodhousekeeping.com/goodhousekeeping_4.json
index 94fd9dc7..d1224d33 100644
--- a/tests/test_data/goodhousekeeping.com/goodhousekeeping_4.json
+++ b/tests/test_data/goodhousekeeping.com/goodhousekeeping_4.json
@@ -82,8 +82,8 @@
     "calories": "555cals",
     "fatContent": "36g",
     "saturatedFatContent": "22g",
-    "sugarContent": "43g",
     "carbohydrateContent": "50g",
+    "sugarContent": "43g",
     "proteinContent": "7g",
     "fiberContent": "1g"
   },
diff --git a/tests/test_data/halfbakedharvest.com/halfbakedharvest.json b/tests/test_data/halfbakedharvest.com/halfbakedharvest.json
index 117be852..0f6bf6dc 100644
--- a/tests/test_data/halfbakedharvest.com/halfbakedharvest.json
+++ b/tests/test_data/halfbakedharvest.com/halfbakedharvest.json
@@ -35,8 +35,8 @@
   "ratings": 4.59,
   "ratings_count": 179,
   "nutrients": {
-    "calories": "722 kcal",
-    "servingSize": "1 serving"
+    "servingSize": "1 serving",
+    "calories": "722 kcal"
   },
   "image": "https://www.halfbakedharvest.com/wp-content/uploads/2020/07/Brown-Butter-Corn-and-Feta-Orzo-with-Crispy-Prosciutto-1-1.jpg"
 }
diff --git a/tests/test_data/halfbakedharvest.com/halfbakedharvest_groups.json b/tests/test_data/halfbakedharvest.com/halfbakedharvest_groups.json
index 8a2ae893..18e60bc6 100644
--- a/tests/test_data/halfbakedharvest.com/halfbakedharvest_groups.json
+++ b/tests/test_data/halfbakedharvest.com/halfbakedharvest_groups.json
@@ -72,8 +72,8 @@
   "ratings": 4.8,
   "ratings_count": 58,
   "nutrients": {
-    "calories": "473 kcal",
-    "servingSize": "1 serving"
+    "servingSize": "1 serving",
+    "calories": "473 kcal"
   },
   "dietary_restrictions": [
     "Vegetarian Diet"
diff --git a/tests/test_data/heb.com/heb.json b/tests/test_data/heb.com/heb.json
index 635a199a..0a9fbda0 100644
--- a/tests/test_data/heb.com/heb.json
+++ b/tests/test_data/heb.com/heb.json
@@ -25,16 +25,16 @@
   "prep_time": 20,
   "nutrients": {
     "calories": "100 calories",
-    "carbohydrateContent": "8 grams",
-    "cholesterolContent": "15 milligrams",
     "fatContent": "8 grams",
-    "fiberContent": "2 grams",
-    "proteinContent": "1 grams",
     "saturatedFatContent": "4 grams",
-    "sodiumContent": "100 milligrams",
-    "sugarContent": "3 grams",
+    "unsaturatedFatContent": "4 grams",
     "transFatContent": "0 grams",
-    "unsaturatedFatContent": "4 grams"
+    "carbohydrateContent": "8 grams",
+    "sugarContent": "3 grams",
+    "proteinContent": "1 grams",
+    "sodiumContent": "100 milligrams",
+    "fiberContent": "2 grams",
+    "cholesterolContent": "15 milligrams"
   },
   "image": "https://images.heb.com/is/image/HEBGrocery/Test/truffled-spaghetti-squash-recipe.jpg"
 }
diff --git a/tests/test_data/hersheyland.com/herseyland.json b/tests/test_data/hersheyland.com/herseyland.json
index 9ef65142..6062c317 100644
--- a/tests/test_data/hersheyland.com/herseyland.json
+++ b/tests/test_data/hersheyland.com/herseyland.json
@@ -45,12 +45,12 @@
     "fatContent": "19 g",
     "saturatedFatContent": "7 g",
     "transFatContent": "0 g",
-    "cholesterolContent": "60 mg",
-    "sodiumContent": "500 mg",
     "carbohydrateContent": "85 g",
-    "fiberContent": "0 g",
     "sugarContent": "64 g",
-    "proteinContent": "6 g"
+    "proteinContent": "6 g",
+    "sodiumContent": "500 mg",
+    "fiberContent": "0 g",
+    "cholesterolContent": "60 mg"
   },
   "image": "https://publish-p50513-e440257.adobeaemcloud.com/content/dam/hersheyland/en-us/recipes/recipe-images/2_Hersheys_Perfectly_Chocolate_Cake_11-18.jpeg",
   "keywords": [
diff --git a/tests/test_data/homechef.com/homechef.json b/tests/test_data/homechef.com/homechef.json
index 48623b45..8e2476d3 100644
--- a/tests/test_data/homechef.com/homechef.json
+++ b/tests/test_data/homechef.com/homechef.json
@@ -45,11 +45,11 @@
   "total_time": 35,
   "nutrients": {
     "calories": "640",
-    "carbohydrateContent": "75g",
-    "netCarbContent": "68g",
     "fatContent": "25g",
+    "carbohydrateContent": "75g",
     "proteinContent": "24g",
-    "sodiumContent": "1060mg"
+    "sodiumContent": "1060mg",
+    "netCarbContent": "68g"
   },
   "image": "https://homechef.imgix.net/https%3A%2F%2Fasset.homechef.com%2Fuploads%2Fmeal%2Fplated%2F5846%2F5846ProsciuttoandAsiagoCarbonara_Ecomm__1_of_1_-7e576bca3e38185a1acfd06570476d88-7e576bca3e38185a1acfd06570476d88.jpg?ixlib=rails-1.1.0&w=600&auto=format&s=48487283c613e3a946c19f4548bbb6cc"
 }
diff --git a/tests/test_data/im-worthy.com/imworthy.json b/tests/test_data/im-worthy.com/imworthy.json
index 333586c8..054169cb 100644
--- a/tests/test_data/im-worthy.com/imworthy.json
+++ b/tests/test_data/im-worthy.com/imworthy.json
@@ -33,8 +33,8 @@
   "ratings": 5.0,
   "ratings_count": 9,
   "nutrients": {
-    "calories": "180 kcal",
-    "servingSize": "1 serving"
+    "servingSize": "1 serving",
+    "calories": "180 kcal"
   },
   "image": "https://im-worthy.com/wp-content/uploads/2020/11/Almond-Flour-Pancakes_Blog4.jpg",
   "keywords": [
diff --git a/tests/test_data/indianhealthyrecipes.com/indianhealthyrecipes.json b/tests/test_data/indianhealthyrecipes.com/indianhealthyrecipes.json
index a44cc0db..28abb743 100644
--- a/tests/test_data/indianhealthyrecipes.com/indianhealthyrecipes.json
+++ b/tests/test_data/indianhealthyrecipes.com/indianhealthyrecipes.json
@@ -45,16 +45,16 @@
   "ratings": 4.96,
   "ratings_count": 373,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "123 kcal",
-    "carbohydrateContent": "14 g",
-    "proteinContent": "3 g",
     "fatContent": "6 g",
     "saturatedFatContent": "3 g",
-    "cholesterolContent": "34 mg",
+    "carbohydrateContent": "14 g",
+    "sugarContent": "2 g",
+    "proteinContent": "3 g",
     "sodiumContent": "129 mg",
     "fiberContent": "1 g",
-    "sugarContent": "2 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "34 mg"
   },
   "image": "https://www.indianhealthyrecipes.com/wp-content/uploads/2021/01/banana-cake-recipe.jpg",
   "keywords": [
diff --git a/tests/test_data/innit.com/innit.json b/tests/test_data/innit.com/innit.json
index d9e2b68b..ee495362 100644
--- a/tests/test_data/innit.com/innit.json
+++ b/tests/test_data/innit.com/innit.json
@@ -61,16 +61,16 @@
   "cook_time": 49,
   "prep_time": 2,
   "nutrients": {
+    "calories": "800 kcal",
+    "fatContent": "61 g",
+    "saturatedFatContent": "8 g",
+    "unsaturatedFatContent": "53 g",
+    "carbohydrateContent": "34 g",
     "sugarContent": "18 g",
     "proteinContent": "32 g",
+    "sodiumContent": "1040 mg",
     "fiberContent": "11 g",
-    "unsaturatedFatContent": "53 g",
-    "fatContent": "61 g",
-    "cholesterolContent": "0 mg",
-    "calories": "800 kcal",
-    "carbohydrateContent": "34 g",
-    "saturatedFatContent": "8 g",
-    "sodiumContent": "1040 mg"
+    "cholesterolContent": "0 mg"
   },
   "image": "https://www.innit.com/meal-service/en-US/images/Meal-Salads%3A%20Blended-Carrot_Ginger_Dressing%2BAssembled-Broccoli_Beet_Mix%2BSeared-Tofu-Diced%2BOlive_Oil%2BPrepared-Mixed_Greens_480x480.png"
 }
diff --git a/tests/test_data/izzycooking.com/izzycooking.json b/tests/test_data/izzycooking.com/izzycooking.json
index 6bec0182..ff2da46c 100644
--- a/tests/test_data/izzycooking.com/izzycooking.json
+++ b/tests/test_data/izzycooking.com/izzycooking.json
@@ -35,16 +35,16 @@
   "ratings": 4.93,
   "ratings_count": 13,
   "nutrients": {
-    "carbohydrateContent": "19 g",
-    "proteinContent": "3 g",
+    "servingSize": "1 serving",
+    "calories": "221 kcal",
     "fatContent": "15 g",
     "saturatedFatContent": "8 g",
-    "cholesterolContent": "55 mg",
+    "carbohydrateContent": "19 g",
+    "sugarContent": "14 g",
+    "proteinContent": "3 g",
     "sodiumContent": "181 mg",
     "fiberContent": "1 g",
-    "sugarContent": "14 g",
-    "calories": "221 kcal",
-    "servingSize": "1 serving"
+    "cholesterolContent": "55 mg"
   },
   "image": "https://izzycooking.com/wp-content/uploads/2018/06/Oreo-Cheesecake-Bites-Featured-Image.jpg",
   "keywords": [
diff --git a/tests/test_data/jamieoliver.com/jamieoliver.json b/tests/test_data/jamieoliver.com/jamieoliver.json
index 7fb3624c..de0d00c4 100644
--- a/tests/test_data/jamieoliver.com/jamieoliver.json
+++ b/tests/test_data/jamieoliver.com/jamieoliver.json
@@ -33,9 +33,9 @@
     "calories": "291 calories",
     "fatContent": "18.4 g fat",
     "saturatedFatContent": "10.1 g saturated fat",
-    "proteinContent": "3.9 g protein",
     "carbohydrateContent": "28.3 g carbohydrate",
     "sugarContent": "24.6 g sugar",
+    "proteinContent": "3.9 g protein",
     "sodiumContent": "0.2 g salt",
     "fiberContent": "1.6 g fibre"
   },
diff --git a/tests/test_data/jocooks.com/jocooks.json b/tests/test_data/jocooks.com/jocooks.json
index 89b29890..9962aadd 100644
--- a/tests/test_data/jocooks.com/jocooks.json
+++ b/tests/test_data/jocooks.com/jocooks.json
@@ -79,14 +79,14 @@
   "nutrients": {
     "servingSize": "1 serving",
     "calories": "466 kcal",
-    "carbohydrateContent": "33 g",
-    "proteinContent": "34 g",
     "fatContent": "22 g",
     "saturatedFatContent": "13 g",
-    "cholesterolContent": "143 mg",
+    "carbohydrateContent": "33 g",
+    "sugarContent": "21 g",
+    "proteinContent": "34 g",
     "sodiumContent": "372 mg",
     "fiberContent": "1 g",
-    "sugarContent": "21 g"
+    "cholesterolContent": "143 mg"
   },
   "image": "https://www.jocooks.com/wp-content/uploads/2020/02/korean-fried-chicken-1-16.jpg",
   "keywords": [
diff --git a/tests/test_data/joyfoodsunshine.com/joyfoodsunshine.json b/tests/test_data/joyfoodsunshine.com/joyfoodsunshine.json
index 7fdf4707..18888dcf 100644
--- a/tests/test_data/joyfoodsunshine.com/joyfoodsunshine.json
+++ b/tests/test_data/joyfoodsunshine.com/joyfoodsunshine.json
@@ -50,14 +50,14 @@
   "nutrients": {
     "servingSize": "1 Serving (Crust only)",
     "calories": "67 kcal",
-    "carbohydrateContent": "12 g",
-    "proteinContent": "2 g",
     "fatContent": "1.2 g",
     "saturatedFatContent": "0.2 g",
-    "sodiumContent": "177 mg",
-    "fiberContent": "0.5 g",
+    "unsaturatedFatContent": "1 g",
+    "carbohydrateContent": "12 g",
     "sugarContent": "1 g",
-    "unsaturatedFatContent": "1 g"
+    "proteinContent": "2 g",
+    "sodiumContent": "177 mg",
+    "fiberContent": "0.5 g"
   },
   "dietary_restrictions": [
     "Vegan Diet",
diff --git a/tests/test_data/justataste.com/justataste.json b/tests/test_data/justataste.com/justataste.json
index b5c3b9ea..4f35f1d1 100644
--- a/tests/test_data/justataste.com/justataste.json
+++ b/tests/test_data/justataste.com/justataste.json
@@ -39,17 +39,17 @@
   "ratings": 4.5,
   "ratings_count": 12,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "319 kcal",
-    "carbohydrateContent": "34 g",
-    "proteinContent": "10 g",
     "fatContent": "16 g",
     "saturatedFatContent": "6 g",
-    "cholesterolContent": "19 mg",
+    "unsaturatedFatContent": "8 g",
+    "carbohydrateContent": "34 g",
+    "sugarContent": "4 g",
+    "proteinContent": "10 g",
     "sodiumContent": "664 mg",
     "fiberContent": "3 g",
-    "sugarContent": "4 g",
-    "unsaturatedFatContent": "8 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "19 mg"
   },
   "image": "https://www.justataste.com/wp-content/uploads/2018/04/baked-air-fryer-cheese-taquitos.jpg",
   "keywords": [
diff --git a/tests/test_data/justonecookbook.com/justonecookbook.json b/tests/test_data/justonecookbook.com/justonecookbook.json
index d2eadb63..77026ccc 100644
--- a/tests/test_data/justonecookbook.com/justonecookbook.json
+++ b/tests/test_data/justonecookbook.com/justonecookbook.json
@@ -54,15 +54,15 @@
   "ratings": 4.67,
   "ratings_count": 68,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "147 kcal",
-    "carbohydrateContent": "31 g",
-    "proteinContent": "3 g",
     "fatContent": "1 g",
     "saturatedFatContent": "1 g",
-    "transFatContent": "1 g",
-    "sodiumContent": "53 mg",
     "unsaturatedFatContent": "2 g",
-    "servingSize": "1 serving"
+    "transFatContent": "1 g",
+    "carbohydrateContent": "31 g",
+    "proteinContent": "3 g",
+    "sodiumContent": "53 mg"
   },
   "image": "https://www.justonecookbook.com/wp-content/uploads/2023/09/Yaki-Onigiri-Grilled-Rice-Ball-3074-I-1.jpg",
   "keywords": [
diff --git a/tests/test_data/kingarthurbaking.com/kingarthur.json b/tests/test_data/kingarthurbaking.com/kingarthur.json
index 35627374..863e6733 100644
--- a/tests/test_data/kingarthurbaking.com/kingarthur.json
+++ b/tests/test_data/kingarthurbaking.com/kingarthur.json
@@ -44,15 +44,15 @@
   "nutrients": {
     "servingSize": "1 cookie (32g)",
     "calories": "130",
+    "fatContent": "6g",
+    "saturatedFatContent": "1g",
+    "transFatContent": "0g",
     "carbohydrateContent": "20g",
-    "cholesterolContent": "10mg",
-    "fiberContent": "2g",
+    "sugarContent": "13g",
     "proteinContent": "2g",
     "sodiumContent": "115mg",
-    "sugarContent": "13g",
-    "fatContent": "6g",
-    "saturatedFatContent": "1g",
-    "transFatContent": "0g"
+    "fiberContent": "2g",
+    "cholesterolContent": "10mg"
   },
   "image": "https://www.kingarthurbaking.com/sites/default/files/2021-11/Spiced-Rye-Ginger_SOCIAL_HERO_33683-1.jpg",
   "keywords": [
diff --git a/tests/test_data/kitchendreaming.com/kitchendreaming_1.json b/tests/test_data/kitchendreaming.com/kitchendreaming_1.json
index 526642f0..0709ddf5 100644
--- a/tests/test_data/kitchendreaming.com/kitchendreaming_1.json
+++ b/tests/test_data/kitchendreaming.com/kitchendreaming_1.json
@@ -42,14 +42,14 @@
   "nutrients": {
     "servingSize": "2 meatballs",
     "calories": "34 kcal",
-    "sugarContent": "1 g",
-    "sodiumContent": "474 mg",
     "fatContent": "2 g",
     "saturatedFatContent": "1 g",
     "transFatContent": "1 g",
     "carbohydrateContent": "2 g",
-    "fiberContent": "1 g",
+    "sugarContent": "1 g",
     "proteinContent": "3 g",
+    "sodiumContent": "474 mg",
+    "fiberContent": "1 g",
     "cholesterolContent": "18 mg"
   },
   "image": "https://kitchendreaming.com/wp-content/uploads/2016/10/Crock-Pot-Buffalo-Chicken-Meatballs_2_650.jpg",
diff --git a/tests/test_data/kitchendreaming.com/kitchendreaming_2.json b/tests/test_data/kitchendreaming.com/kitchendreaming_2.json
index 933937ca..64da3f46 100644
--- a/tests/test_data/kitchendreaming.com/kitchendreaming_2.json
+++ b/tests/test_data/kitchendreaming.com/kitchendreaming_2.json
@@ -87,16 +87,16 @@
   "nutrients": {
     "servingSize": "1 serving",
     "calories": "468 kcal",
-    "carbohydrateContent": "10 g",
-    "proteinContent": "22 g",
     "fatContent": "38 g",
     "saturatedFatContent": "15 g",
+    "unsaturatedFatContent": "19 g",
     "transFatContent": "0.3 g",
-    "cholesterolContent": "157 mg",
+    "carbohydrateContent": "10 g",
+    "sugarContent": "6 g",
+    "proteinContent": "22 g",
     "sodiumContent": "865 mg",
     "fiberContent": "2 g",
-    "sugarContent": "6 g",
-    "unsaturatedFatContent": "19 g"
+    "cholesterolContent": "157 mg"
   },
   "image": "https://kitchendreaming.com/wp-content/uploads/2024/03/Butter-Chicken_KD-1.jpg",
   "keywords": [
diff --git a/tests/test_data/kitchensanctuary.com/kitchensanctuary.json b/tests/test_data/kitchensanctuary.com/kitchensanctuary.json
index 6057870b..31306784 100644
--- a/tests/test_data/kitchensanctuary.com/kitchensanctuary.json
+++ b/tests/test_data/kitchensanctuary.com/kitchensanctuary.json
@@ -98,16 +98,16 @@
   "ratings": 4.88,
   "ratings_count": 82,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "814 kcal",
-    "carbohydrateContent": "66 g",
-    "proteinContent": "58 g",
     "fatContent": "36 g",
     "saturatedFatContent": "22 g",
-    "cholesterolContent": "151 mg",
+    "carbohydrateContent": "66 g",
+    "sugarContent": "25 g",
+    "proteinContent": "58 g",
     "sodiumContent": "2952 mg",
     "fiberContent": "2 g",
-    "sugarContent": "25 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "151 mg"
   },
   "image": "https://www.kitchensanctuary.com/wp-content/uploads/2019/08/Korean-Fried-Chicken-square-FS-New-7377.jpg",
   "keywords": [
diff --git a/tests/test_data/kitchenstories.com/kitchenstories.json b/tests/test_data/kitchenstories.com/kitchenstories.json
index 5d2c2780..25e6062c 100644
--- a/tests/test_data/kitchenstories.com/kitchenstories.json
+++ b/tests/test_data/kitchenstories.com/kitchenstories.json
@@ -28,9 +28,9 @@
   "nutrients": {
     "servingSize": "1 Servings",
     "calories": "359 cal",
-    "proteinContent": "2 g",
     "fatContent": "1 g",
-    "carbohydrateContent": "91 g"
+    "carbohydrateContent": "91 g",
+    "proteinContent": "2 g"
   },
   "image": "https://images.kitchenstories.io/wagtailOriginalImages/R2630-photo-final-1.jpg",
   "keywords": [
diff --git a/tests/test_data/kochbar.de/kochbar.json b/tests/test_data/kochbar.de/kochbar.json
index 84a282d9..77b1e2de 100644
--- a/tests/test_data/kochbar.de/kochbar.json
+++ b/tests/test_data/kochbar.de/kochbar.json
@@ -49,11 +49,11 @@
   "ratings": 4.75,
   "ratings_count": 4,
   "nutrients": {
+    "servingSize": "100 g",
     "calories": "0 kcal",
     "fatContent": "0 g",
-    "proteinContent": "0 g",
     "carbohydrateContent": "0 g",
-    "servingSize": "100 g"
+    "proteinContent": "0 g"
   },
   "image": "https://ais.kochbar.de/kbrezept/549118_1087108/1200x1200/ligurisches-huehnerragout-mit-zucchini-spezzatino-con-zucchine-rezept-bild-nr-2.jpg",
   "keywords": [
diff --git a/tests/test_data/kristineskitchenblog.com/kristineskitchenblog_1.json b/tests/test_data/kristineskitchenblog.com/kristineskitchenblog_1.json
index c0539d24..8a9c16bd 100644
--- a/tests/test_data/kristineskitchenblog.com/kristineskitchenblog_1.json
+++ b/tests/test_data/kristineskitchenblog.com/kristineskitchenblog_1.json
@@ -27,15 +27,15 @@
   "nutrients": {
     "servingSize": "2 cups",
     "calories": "228 kcal",
-    "carbohydrateContent": "45 g",
-    "proteinContent": "9 g",
     "fatContent": "4 g",
     "saturatedFatContent": "1 g",
-    "cholesterolContent": "3 mg",
+    "unsaturatedFatContent": "3 g",
+    "carbohydrateContent": "45 g",
+    "sugarContent": "26 g",
+    "proteinContent": "9 g",
     "sodiumContent": "265 mg",
     "fiberContent": "11 g",
-    "sugarContent": "26 g",
-    "unsaturatedFatContent": "3 g"
+    "cholesterolContent": "3 mg"
   },
   "image": "https://kristineskitchenblog.com/wp-content/uploads/2022/02/best-berry-smoothie-recipe-06.jpg",
   "keywords": [
diff --git a/tests/test_data/kristineskitchenblog.com/kristineskitchenblog_2.json b/tests/test_data/kristineskitchenblog.com/kristineskitchenblog_2.json
index 82349328..2676b37e 100644
--- a/tests/test_data/kristineskitchenblog.com/kristineskitchenblog_2.json
+++ b/tests/test_data/kristineskitchenblog.com/kristineskitchenblog_2.json
@@ -73,15 +73,15 @@
   "nutrients": {
     "servingSize": "1 serving",
     "calories": "383 kcal",
-    "carbohydrateContent": "36 g",
-    "proteinContent": "32 g",
     "fatContent": "12 g",
     "saturatedFatContent": "6 g",
-    "cholesterolContent": "95 mg",
+    "unsaturatedFatContent": "4 g",
+    "carbohydrateContent": "36 g",
+    "sugarContent": "4 g",
+    "proteinContent": "32 g",
     "sodiumContent": "615 mg",
     "fiberContent": "3 g",
-    "sugarContent": "4 g",
-    "unsaturatedFatContent": "4 g"
+    "cholesterolContent": "95 mg"
   },
   "image": "https://kristineskitchenblog.com/wp-content/uploads/2023/09/crock-pot-chicken-and-dumplings-14-2.jpg",
   "keywords": [
diff --git a/tests/test_data/lecker.de/lecker_2.json b/tests/test_data/lecker.de/lecker_2.json
index db534653..85de922f 100644
--- a/tests/test_data/lecker.de/lecker_2.json
+++ b/tests/test_data/lecker.de/lecker_2.json
@@ -31,11 +31,11 @@
   "ratings": 5.0,
   "ratings_count": 1,
   "nutrients": {
+    "servingSize": "1 Stück",
     "calories": "215 kcal",
-    "carbohydrateContent": "33 g",
     "fatContent": "7 g",
-    "proteinContent": "6 g",
-    "servingSize": "1 Stück"
+    "carbohydrateContent": "33 g",
+    "proteinContent": "6 g"
   },
   "image": "https://images.lecker.de/naan-brot-b-f6193840/1x1,id=d239fb08,b=lecker,w=1600,h=,ca=10.42,0,85.58,100,rm=sk.jpeg",
   "keywords": [
diff --git a/tests/test_data/lecremedelacrumb.com/lecremedelacrumb.json b/tests/test_data/lecremedelacrumb.com/lecremedelacrumb.json
index 5c5f447a..5f811597 100644
--- a/tests/test_data/lecremedelacrumb.com/lecremedelacrumb.json
+++ b/tests/test_data/lecremedelacrumb.com/lecremedelacrumb.json
@@ -32,17 +32,17 @@
   "ratings": 4.85,
   "ratings_count": 165,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "202 kcal",
-    "carbohydrateContent": "1 g",
-    "proteinContent": "37 g",
     "fatContent": "5 g",
     "saturatedFatContent": "1 g",
     "transFatContent": "1 g",
-    "cholesterolContent": "108 mg",
+    "carbohydrateContent": "1 g",
+    "sugarContent": "1 g",
+    "proteinContent": "37 g",
     "sodiumContent": "1003 mg",
     "fiberContent": "1 g",
-    "sugarContent": "1 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "108 mg"
   },
   "image": "https://www.lecremedelacrumb.com/wp-content/uploads/2019/01/instant-pot-shredded-chicken-tacos-5.jpg",
   "keywords": [
diff --git a/tests/test_data/leitesculinaria.com/leitesculinaria_1.json b/tests/test_data/leitesculinaria.com/leitesculinaria_1.json
index ccc8ae9a..272364b3 100644
--- a/tests/test_data/leitesculinaria.com/leitesculinaria_1.json
+++ b/tests/test_data/leitesculinaria.com/leitesculinaria_1.json
@@ -41,13 +41,13 @@
   "nutrients": {
     "servingSize": "2 tablespoons",
     "calories": "34 kcal",
-    "carbohydrateContent": "8 g",
-    "proteinContent": "1 g",
     "fatContent": "1 g",
     "saturatedFatContent": "1 g",
+    "carbohydrateContent": "8 g",
+    "sugarContent": "5 g",
+    "proteinContent": "1 g",
     "sodiumContent": "442 mg",
-    "fiberContent": "1 g",
-    "sugarContent": "5 g"
+    "fiberContent": "1 g"
   },
   "image": "https://leitesculinaria.com/wp-content/uploads/2023/11/homemade-sriracha-sauce-1200.jpg",
   "keywords": [
diff --git a/tests/test_data/leitesculinaria.com/leitesculinaria_2.json b/tests/test_data/leitesculinaria.com/leitesculinaria_2.json
index 1440b294..c02912d0 100644
--- a/tests/test_data/leitesculinaria.com/leitesculinaria_2.json
+++ b/tests/test_data/leitesculinaria.com/leitesculinaria_2.json
@@ -76,16 +76,16 @@
   "nutrients": {
     "servingSize": "1 portion",
     "calories": "567 kcal",
-    "carbohydrateContent": "6 g",
-    "proteinContent": "50 g",
     "fatContent": "34 g",
     "saturatedFatContent": "16 g",
+    "unsaturatedFatContent": "19 g",
     "transFatContent": "2 g",
-    "cholesterolContent": "187 mg",
+    "carbohydrateContent": "6 g",
+    "sugarContent": "2 g",
+    "proteinContent": "50 g",
     "sodiumContent": "249 mg",
     "fiberContent": "1 g",
-    "sugarContent": "2 g",
-    "unsaturatedFatContent": "19 g"
+    "cholesterolContent": "187 mg"
   },
   "image": "https://leitesculinaria.com/wp-content/uploads/2001/05/beef-cacoila.jpg",
   "keywords": [
diff --git a/tests/test_data/lifestyleofafoodie.com/lifestyleofafoodie_1.json b/tests/test_data/lifestyleofafoodie.com/lifestyleofafoodie_1.json
index 20d996f5..07f2dd06 100644
--- a/tests/test_data/lifestyleofafoodie.com/lifestyleofafoodie_1.json
+++ b/tests/test_data/lifestyleofafoodie.com/lifestyleofafoodie_1.json
@@ -29,16 +29,16 @@
   "ratings": 5.0,
   "ratings_count": 1,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "136 kcal",
-    "carbohydrateContent": "18 g",
-    "proteinContent": "1 g",
     "fatContent": "0.4 g",
     "saturatedFatContent": "0.01 g",
-    "sodiumContent": "5 mg",
-    "fiberContent": "2 g",
-    "sugarContent": "13 g",
     "unsaturatedFatContent": "0.25 g",
-    "servingSize": "1 serving"
+    "carbohydrateContent": "18 g",
+    "sugarContent": "13 g",
+    "proteinContent": "1 g",
+    "sodiumContent": "5 mg",
+    "fiberContent": "2 g"
   },
   "image": "https://lifestyleofafoodie.com/wp-content/uploads/2023/06/Frozen-strawberry-margarita-5.jpg",
   "keywords": [
diff --git a/tests/test_data/littlesunnykitchen.com/littlesunnykitchen.json b/tests/test_data/littlesunnykitchen.com/littlesunnykitchen.json
index 4cc7328c..8ee4eea4 100644
--- a/tests/test_data/littlesunnykitchen.com/littlesunnykitchen.json
+++ b/tests/test_data/littlesunnykitchen.com/littlesunnykitchen.json
@@ -32,15 +32,15 @@
   "ratings": 4.95,
   "ratings_count": 57,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "49 kcal",
-    "carbohydrateContent": "2 g",
-    "proteinContent": "1 g",
     "fatContent": "5 g",
     "saturatedFatContent": "1 g",
-    "sodiumContent": "400 mg",
-    "fiberContent": "1 g",
+    "carbohydrateContent": "2 g",
     "sugarContent": "1 g",
-    "servingSize": "1 serving"
+    "proteinContent": "1 g",
+    "sodiumContent": "400 mg",
+    "fiberContent": "1 g"
   },
   "image": "https://littlesunnykitchen.com/wp-content/uploads/2021/05/Mexican-Chicken-Marinade-1.jpg",
   "keywords": [
diff --git a/tests/test_data/livelytable.com/livelytable_2.json b/tests/test_data/livelytable.com/livelytable_2.json
index 02ba3a14..c19fe7e6 100644
--- a/tests/test_data/livelytable.com/livelytable_2.json
+++ b/tests/test_data/livelytable.com/livelytable_2.json
@@ -75,14 +75,14 @@
   "nutrients": {
     "servingSize": "1 taco",
     "calories": "147 calories",
-    "sugarContent": "1.4 g",
-    "sodiumContent": "134 mg",
     "fatContent": "2.8 g",
     "saturatedFatContent": "0.6 g",
     "transFatContent": "0 g",
     "carbohydrateContent": "9.9 g",
-    "fiberContent": "1.5 g",
+    "sugarContent": "1.4 g",
     "proteinContent": "21.4 g",
+    "sodiumContent": "134 mg",
+    "fiberContent": "1.5 g",
     "cholesterolContent": "144.7 mg"
   },
   "image": "https://livelytable.com/wp-content/uploads/2017/05/chipotle-shrimp-tacos-225x225.jpg",
diff --git a/tests/test_data/lovingitvegan.com/lovingitvegan.json b/tests/test_data/lovingitvegan.com/lovingitvegan.json
index a888d1ac..476a70b8 100644
--- a/tests/test_data/lovingitvegan.com/lovingitvegan.json
+++ b/tests/test_data/lovingitvegan.com/lovingitvegan.json
@@ -32,13 +32,13 @@
   "nutrients": {
     "servingSize": "1 Smoothie",
     "calories": "373 kcal",
-    "sugarContent": "15.2 g",
-    "sodiumContent": "180 mg",
     "fatContent": "19.5 g",
     "saturatedFatContent": "3.7 g",
     "carbohydrateContent": "42.6 g",
-    "fiberContent": "4.9 g",
-    "proteinContent": "13.8 g"
+    "sugarContent": "15.2 g",
+    "proteinContent": "13.8 g",
+    "sodiumContent": "180 mg",
+    "fiberContent": "4.9 g"
   },
   "dietary_restrictions": [
     "Vegan Diet"
diff --git a/tests/test_data/madensverden.dk/madensverden.json b/tests/test_data/madensverden.dk/madensverden.json
index 9aba1b75..ff017240 100644
--- a/tests/test_data/madensverden.dk/madensverden.json
+++ b/tests/test_data/madensverden.dk/madensverden.json
@@ -36,8 +36,8 @@
   "ratings": 4.72,
   "ratings_count": 38,
   "nutrients": {
-    "calories": "270 kcal",
-    "servingSize": "1 person"
+    "servingSize": "1 person",
+    "calories": "270 kcal"
   },
   "image": "https://madensverden.dk/wp-content/uploads/2017/08/billederesultat-for-rabarbertrifli.jpg",
   "keywords": [
diff --git a/tests/test_data/melskitchencafe.com/melskitchencafe.json b/tests/test_data/melskitchencafe.com/melskitchencafe.json
index 0734229b..be6c013a 100644
--- a/tests/test_data/melskitchencafe.com/melskitchencafe.json
+++ b/tests/test_data/melskitchencafe.com/melskitchencafe.json
@@ -33,13 +33,13 @@
   "nutrients": {
     "servingSize": "1 Caramel",
     "calories": "100 kcal",
-    "carbohydrateContent": "18 g",
-    "proteinContent": "1 g",
     "fatContent": "3 g",
     "saturatedFatContent": "2 g",
-    "cholesterolContent": "10 mg",
+    "carbohydrateContent": "18 g",
+    "sugarContent": "18 g",
+    "proteinContent": "1 g",
     "sodiumContent": "50 mg",
-    "sugarContent": "18 g"
+    "cholesterolContent": "10 mg"
   },
   "image": "https://www.melskitchencafe.com/wp-content/uploads/2013/12/licorice-caramels3.jpg",
   "keywords": [
diff --git a/tests/test_data/minimalistbaker.com/minimalistbaker.json b/tests/test_data/minimalistbaker.com/minimalistbaker.json
index 594a84bc..aaab65d1 100644
--- a/tests/test_data/minimalistbaker.com/minimalistbaker.json
+++ b/tests/test_data/minimalistbaker.com/minimalistbaker.json
@@ -32,14 +32,14 @@
   "nutrients": {
     "servingSize": "1 two-tablespoon serving",
     "calories": "117 kcal",
-    "carbohydrateContent": "6.8 g",
-    "proteinContent": "4.3 g",
     "fatContent": "9 g",
     "saturatedFatContent": "1.6 g",
-    "sodiumContent": "76 mg",
-    "fiberContent": "0.9 g",
+    "unsaturatedFatContent": "6.42 g",
+    "carbohydrateContent": "6.8 g",
     "sugarContent": "1.3 g",
-    "unsaturatedFatContent": "6.42 g"
+    "proteinContent": "4.3 g",
+    "sodiumContent": "76 mg",
+    "fiberContent": "0.9 g"
   },
   "image": "https://minimalistbaker.com/wp-content/uploads/2020/05/Cashew-Ricotta-Cheese-sQUARE.jpg",
   "keywords": [
diff --git a/tests/test_data/ministryofcurry.com/ministryofcurry.json b/tests/test_data/ministryofcurry.com/ministryofcurry.json
index 142985f9..3cfaaaff 100644
--- a/tests/test_data/ministryofcurry.com/ministryofcurry.json
+++ b/tests/test_data/ministryofcurry.com/ministryofcurry.json
@@ -47,16 +47,16 @@
     "Slow Cooker"
   ],
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "323 kcal",
-    "carbohydrateContent": "8 g",
-    "proteinContent": "34 g",
     "fatContent": "17 g",
     "saturatedFatContent": "6 g",
-    "cholesterolContent": "125 mg",
+    "carbohydrateContent": "8 g",
+    "sugarContent": "4 g",
+    "proteinContent": "34 g",
     "sodiumContent": "1183 mg",
     "fiberContent": "2 g",
-    "sugarContent": "4 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "125 mg"
   },
   "image": "https://ministryofcurry.com/wp-content/uploads/2019/10/Pomi-Chicken-Tikka-Masala-1-2.jpg",
   "keywords": [
diff --git a/tests/test_data/momontimeout.com/momontimeout_1.json b/tests/test_data/momontimeout.com/momontimeout_1.json
index a47cf1a2..98f96b39 100644
--- a/tests/test_data/momontimeout.com/momontimeout_1.json
+++ b/tests/test_data/momontimeout.com/momontimeout_1.json
@@ -90,18 +90,18 @@
   "ratings": 5.0,
   "ratings_count": 2,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "709 kcal",
-    "carbohydrateContent": "91 g",
-    "proteinContent": "12 g",
     "fatContent": "34 g",
     "saturatedFatContent": "20 g",
+    "unsaturatedFatContent": "11 g",
     "transFatContent": "1 g",
-    "cholesterolContent": "111 mg",
+    "carbohydrateContent": "91 g",
+    "sugarContent": "43 g",
+    "proteinContent": "12 g",
     "sodiumContent": "400 mg",
     "fiberContent": "3 g",
-    "sugarContent": "43 g",
-    "unsaturatedFatContent": "11 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "111 mg"
   },
   "image": "https://www.momontimeout.com/wp-content/uploads/2024/03/giant-cinnamon-roll-square.jpeg",
   "keywords": [
diff --git a/tests/test_data/momontimeout.com/momontimeout_2.json b/tests/test_data/momontimeout.com/momontimeout_2.json
index df6a93ca..8d2afe85 100644
--- a/tests/test_data/momontimeout.com/momontimeout_2.json
+++ b/tests/test_data/momontimeout.com/momontimeout_2.json
@@ -32,16 +32,16 @@
   "ratings": 5.0,
   "ratings_count": 2,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "193 kcal",
-    "carbohydrateContent": "29 g",
-    "proteinContent": "1 g",
     "fatContent": "8 g",
     "saturatedFatContent": "7 g",
-    "cholesterolContent": "1 mg",
+    "carbohydrateContent": "29 g",
+    "sugarContent": "26 g",
+    "proteinContent": "1 g",
     "sodiumContent": "57 mg",
     "fiberContent": "1 g",
-    "sugarContent": "26 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "1 mg"
   },
   "image": "https://www.momontimeout.com/wp-content/uploads/2014/12/chocolate-caramel-christmas-pretzel-wands-1.jpg",
   "keywords": [
diff --git a/tests/test_data/momswithcrockpots.com/momswithcrockpots.json b/tests/test_data/momswithcrockpots.com/momswithcrockpots.json
index 6438c724..3f4ccade 100644
--- a/tests/test_data/momswithcrockpots.com/momswithcrockpots.json
+++ b/tests/test_data/momswithcrockpots.com/momswithcrockpots.json
@@ -37,16 +37,16 @@
     "6 Qt Crockpot"
   ],
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "441 kcal",
-    "carbohydrateContent": "34 g",
-    "proteinContent": "18 g",
     "fatContent": "26 g",
     "saturatedFatContent": "15 g",
-    "cholesterolContent": "74 mg",
+    "carbohydrateContent": "34 g",
+    "sugarContent": "7 g",
+    "proteinContent": "18 g",
     "sodiumContent": "551 mg",
     "fiberContent": "1 g",
-    "sugarContent": "7 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "74 mg"
   },
   "image": "https://momswithcrockpots.com/wp-content/uploads/2012/01/Crockpot-Macaroni-and-cheese-2.jpg",
   "keywords": [
diff --git a/tests/test_data/mybakingaddiction.com/mybakingaddiction.json b/tests/test_data/mybakingaddiction.com/mybakingaddiction.json
index 7f3ec4af..7e6ae3d7 100644
--- a/tests/test_data/mybakingaddiction.com/mybakingaddiction.json
+++ b/tests/test_data/mybakingaddiction.com/mybakingaddiction.json
@@ -40,18 +40,18 @@
   "ratings": 4.3,
   "ratings_count": 23,
   "nutrients": {
+    "servingSize": "1 slice",
     "calories": "296 calories",
-    "carbohydrateContent": "34 grams carbohydrates",
-    "cholesterolContent": "31 milligrams cholesterol",
     "fatContent": "17 grams fat",
-    "fiberContent": "2 grams fiber",
-    "proteinContent": "4 grams protein",
     "saturatedFatContent": "12 grams saturated fat",
-    "servingSize": "1 slice",
-    "sodiumContent": "206 milligrams sodium",
-    "sugarContent": "19 grams sugar",
+    "unsaturatedFatContent": "3 grams unsaturated fat",
     "transFatContent": "0 grams trans fat",
-    "unsaturatedFatContent": "3 grams unsaturated fat"
+    "carbohydrateContent": "34 grams carbohydrates",
+    "sugarContent": "19 grams sugar",
+    "proteinContent": "4 grams protein",
+    "sodiumContent": "206 milligrams sodium",
+    "fiberContent": "2 grams fiber",
+    "cholesterolContent": "31 milligrams cholesterol"
   },
   "image": "https://www.mybakingaddiction.com/wp-content/uploads/2016/08/slice-from-chocolate-zucchini-loaf-hero-720x720.jpg",
   "keywords": [
diff --git a/tests/test_data/mykitchen101en.com/mykitchen101en.json b/tests/test_data/mykitchen101en.com/mykitchen101en.json
index 72a98668..8a6136ef 100644
--- a/tests/test_data/mykitchen101en.com/mykitchen101en.json
+++ b/tests/test_data/mykitchen101en.com/mykitchen101en.json
@@ -45,18 +45,18 @@
     "2 mini muffin pans"
   ],
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "48 kcal",
-    "carbohydrateContent": "8 g",
-    "proteinContent": "1 g",
     "fatContent": "1 g",
     "saturatedFatContent": "1 g",
+    "unsaturatedFatContent": "0.6 g",
     "transFatContent": "0.04 g",
-    "cholesterolContent": "24 mg",
+    "carbohydrateContent": "8 g",
+    "sugarContent": "4 g",
+    "proteinContent": "1 g",
     "sodiumContent": "25 mg",
     "fiberContent": "0.1 g",
-    "sugarContent": "4 g",
-    "unsaturatedFatContent": "0.6 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "24 mg"
   },
   "image": "https://mykitchen101en.com/wp-content/uploads/2020/11/mini-baked-egg-sponge-cake-mykitchen101en-feature.jpg",
   "keywords": [
diff --git a/tests/test_data/mykoreankitchen.com/mykoreankitchen.json b/tests/test_data/mykoreankitchen.com/mykoreankitchen.json
index 74721a38..13487499 100644
--- a/tests/test_data/mykoreankitchen.com/mykoreankitchen.json
+++ b/tests/test_data/mykoreankitchen.com/mykoreankitchen.json
@@ -75,16 +75,16 @@
   "ratings": 4.88,
   "ratings_count": 8,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "439 kcal",
-    "carbohydrateContent": "89 g",
-    "proteinContent": "6 g",
     "fatContent": "7 g",
     "saturatedFatContent": "1 g",
-    "sodiumContent": "151 mg",
-    "fiberContent": "3 g",
-    "sugarContent": "14 g",
     "unsaturatedFatContent": "5 g",
-    "servingSize": "1 serving"
+    "carbohydrateContent": "89 g",
+    "sugarContent": "14 g",
+    "proteinContent": "6 g",
+    "sodiumContent": "151 mg",
+    "fiberContent": "3 g"
   },
   "image": "https://mykoreankitchen.com/wp-content/uploads/2016/01/1.-Korean-Sweet-Rice-with-Dried-Fruit-and-Nuts.jpg",
   "keywords": [
diff --git a/tests/test_data/norecipes.com/norecipes_1.json b/tests/test_data/norecipes.com/norecipes_1.json
index e79888ef..3de77ab2 100644
--- a/tests/test_data/norecipes.com/norecipes_1.json
+++ b/tests/test_data/norecipes.com/norecipes_1.json
@@ -32,16 +32,16 @@
   "ratings": 4.45,
   "ratings_count": 238,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "361 kcal",
-    "carbohydrateContent": "21 g",
-    "proteinContent": "5 g",
     "fatContent": "29 g",
     "saturatedFatContent": "17 g",
-    "cholesterolContent": "150 mg",
+    "carbohydrateContent": "21 g",
+    "sugarContent": "18 g",
+    "proteinContent": "5 g",
     "sodiumContent": "157 mg",
     "fiberContent": "1 g",
-    "sugarContent": "18 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "150 mg"
   },
   "image": "https://norecipes.com/wp-content/uploads/2020/01/basque-cheesecake-011.jpg",
   "keywords": [
diff --git a/tests/test_data/norecipes.com/norecipes_2.json b/tests/test_data/norecipes.com/norecipes_2.json
index 874be5f3..478fc475 100644
--- a/tests/test_data/norecipes.com/norecipes_2.json
+++ b/tests/test_data/norecipes.com/norecipes_2.json
@@ -70,16 +70,16 @@
   "ratings": 4.43,
   "ratings_count": 14,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "418 kcal",
-    "carbohydrateContent": "41 g",
-    "proteinContent": "21 g",
     "fatContent": "19 g",
     "saturatedFatContent": "5 g",
-    "cholesterolContent": "110 mg",
+    "carbohydrateContent": "41 g",
+    "sugarContent": "21 g",
+    "proteinContent": "21 g",
     "sodiumContent": "656 mg",
     "fiberContent": "2 g",
-    "sugarContent": "21 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "110 mg"
   },
   "image": "https://norecipes.com/wp-content/uploads/2017/06/orange-chicken-005.jpg",
   "keywords": [
diff --git a/tests/test_data/nosalty.hu/nosalty.json b/tests/test_data/nosalty.hu/nosalty.json
index 9dc92015..a611ec44 100644
--- a/tests/test_data/nosalty.hu/nosalty.json
+++ b/tests/test_data/nosalty.hu/nosalty.json
@@ -46,12 +46,12 @@
     "servingSize": "2374 g",
     "calories": "7031.58 g",
     "fatContent": "402.1964 g",
-    "fiberContent": "35.76 g",
+    "carbohydrateContent": "715.9344 g",
     "sugarContent": "279.5564 g",
-    "sodiumContent": "602.54 g",
     "proteinContent": "151.682 g",
-    "cholesterolContent": "1697.6 mg",
-    "carbohydrateContent": "715.9344 g"
+    "sodiumContent": "602.54 g",
+    "fiberContent": "35.76 g",
+    "cholesterolContent": "1697.6 mg"
   },
   "image": "https://image-api.nosalty.hu/nosalty/images/recipes/Am/SZ/aranygaluska-ahogy-nagymamam-kesziti.jpeg?w=1200&h=1200&s=78e81357b434b48faaac2ca43c8321f5",
   "keywords": [
diff --git a/tests/test_data/notenoughcinnamon.com/notenoughcinnamon_1.json b/tests/test_data/notenoughcinnamon.com/notenoughcinnamon_1.json
index 81c660ca..5c171da6 100644
--- a/tests/test_data/notenoughcinnamon.com/notenoughcinnamon_1.json
+++ b/tests/test_data/notenoughcinnamon.com/notenoughcinnamon_1.json
@@ -29,16 +29,16 @@
   "ratings": 5.0,
   "ratings_count": 5,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "305 kcal",
-    "carbohydrateContent": "24 g",
-    "proteinContent": "5 g",
     "fatContent": "23 g",
     "saturatedFatContent": "17 g",
     "transFatContent": "1 g",
-    "sodiumContent": "28 mg",
-    "fiberContent": "7 g",
+    "carbohydrateContent": "24 g",
     "sugarContent": "13 g",
-    "servingSize": "1 serving"
+    "proteinContent": "5 g",
+    "sodiumContent": "28 mg",
+    "fiberContent": "7 g"
   },
   "image": "https://www.notenoughcinnamon.com/wp-content/uploads/2020/10/Pina-Colada-Chia-Pudding-2.jpg",
   "keywords": [
diff --git a/tests/test_data/notenoughcinnamon.com/notenoughcinnamon_2.json b/tests/test_data/notenoughcinnamon.com/notenoughcinnamon_2.json
index 625ab1ff..3e07ec20 100644
--- a/tests/test_data/notenoughcinnamon.com/notenoughcinnamon_2.json
+++ b/tests/test_data/notenoughcinnamon.com/notenoughcinnamon_2.json
@@ -57,15 +57,15 @@
   "ratings": 5.0,
   "ratings_count": 5,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "605 kcal",
-    "carbohydrateContent": "105 g",
-    "proteinContent": "13 g",
     "fatContent": "17 g",
     "saturatedFatContent": "3 g",
-    "sodiumContent": "1371 mg",
-    "fiberContent": "13 g",
+    "carbohydrateContent": "105 g",
     "sugarContent": "14 g",
-    "servingSize": "1 serving"
+    "proteinContent": "13 g",
+    "sodiumContent": "1371 mg",
+    "fiberContent": "13 g"
   },
   "image": "https://www.notenoughcinnamon.com/wp-content/uploads/2021/05/Crispy-Sheet-Pan-Gnocchi-with-Roasted-Vegetables-6.jpg",
   "keywords": [
diff --git a/tests/test_data/number-2-pencil.com/number2pencil_1.json b/tests/test_data/number-2-pencil.com/number2pencil_1.json
index 703d50da..3f3c8279 100644
--- a/tests/test_data/number-2-pencil.com/number2pencil_1.json
+++ b/tests/test_data/number-2-pencil.com/number2pencil_1.json
@@ -42,18 +42,18 @@
   "ratings": 4.96,
   "ratings_count": 46,
   "nutrients": {
-    "carbohydrateContent": "9 g",
-    "proteinContent": "36 g",
+    "servingSize": "1 serving",
+    "calories": "232 kcal",
     "fatContent": "7 g",
     "saturatedFatContent": "1 g",
+    "unsaturatedFatContent": "5 g",
     "transFatContent": "0.01 g",
-    "cholesterolContent": "274 mg",
+    "carbohydrateContent": "9 g",
+    "sugarContent": "4 g",
+    "proteinContent": "36 g",
     "sodiumContent": "805 mg",
     "fiberContent": "3 g",
-    "sugarContent": "4 g",
-    "calories": "232 kcal",
-    "unsaturatedFatContent": "5 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "274 mg"
   },
   "image": "https://www.number-2-pencil.com/wp-content/uploads/2016/09/Sheet-Pan-Shrimp-Fajitas_-6.jpg"
 }
diff --git a/tests/test_data/number-2-pencil.com/number2pencil_2.json b/tests/test_data/number-2-pencil.com/number2pencil_2.json
index a4aface5..9bcbfd72 100644
--- a/tests/test_data/number-2-pencil.com/number2pencil_2.json
+++ b/tests/test_data/number-2-pencil.com/number2pencil_2.json
@@ -75,18 +75,18 @@
   "ratings": 5.0,
   "ratings_count": 3,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "652 kcal",
-    "carbohydrateContent": "57 g",
-    "proteinContent": "8 g",
     "fatContent": "45 g",
     "saturatedFatContent": "28 g",
+    "unsaturatedFatContent": "14 g",
     "transFatContent": "1 g",
-    "cholesterolContent": "158 mg",
+    "carbohydrateContent": "57 g",
+    "sugarContent": "26 g",
+    "proteinContent": "8 g",
     "sodiumContent": "134 mg",
     "fiberContent": "3 g",
-    "sugarContent": "26 g",
-    "unsaturatedFatContent": "14 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "158 mg"
   },
   "image": "https://www.number-2-pencil.com/wp-content/uploads/2023/05/Sheet-Pan-Strawberry-Shortcake-7.jpg",
   "keywords": [
diff --git a/tests/test_data/ohsheglows.com/ohsheglows.json b/tests/test_data/ohsheglows.com/ohsheglows.json
index 743dc684..17d41ff4 100644
--- a/tests/test_data/ohsheglows.com/ohsheglows.json
+++ b/tests/test_data/ohsheglows.com/ohsheglows.json
@@ -37,11 +37,11 @@
     "calories": "365 calorie",
     "fatContent": "26 grams",
     "saturatedFatContent": "19 grams",
-    "sodiumContent": "100 milligrams",
     "carbohydrateContent": "29 grams",
-    "fiberContent": "2 grams",
     "sugarContent": "24 grams",
-    "proteinContent": "6 grams"
+    "proteinContent": "6 grams",
+    "sodiumContent": "100 milligrams",
+    "fiberContent": "2 grams"
   },
   "dietary_restrictions": [
     "Gluten Free Diet",
diff --git a/tests/test_data/omnivorescookbook.com/omnivorescookbook_1.json b/tests/test_data/omnivorescookbook.com/omnivorescookbook_1.json
index 61bc9f64..1d176c4e 100644
--- a/tests/test_data/omnivorescookbook.com/omnivorescookbook_1.json
+++ b/tests/test_data/omnivorescookbook.com/omnivorescookbook_1.json
@@ -32,13 +32,13 @@
   "nutrients": {
     "servingSize": "1 serving",
     "calories": "93 kcal",
-    "carbohydrateContent": "6.1 g",
-    "proteinContent": "4.8 g",
     "fatContent": "6.5 g",
     "saturatedFatContent": "1 g",
+    "carbohydrateContent": "6.1 g",
+    "sugarContent": "3 g",
+    "proteinContent": "4.8 g",
     "sodiumContent": "528 mg",
-    "fiberContent": "1.9 g",
-    "sugarContent": "3 g"
+    "fiberContent": "1.9 g"
   },
   "image": "https://omnivorescookbook.com/wp-content/uploads/2022/02/211213_Stir-Fried-Bok-Choy-With-Tofu-Puffs_550.jpg",
   "keywords": [
diff --git a/tests/test_data/omnivorescookbook.com/omnivorescookbook_2.json b/tests/test_data/omnivorescookbook.com/omnivorescookbook_2.json
index 42111e37..99e96dd5 100644
--- a/tests/test_data/omnivorescookbook.com/omnivorescookbook_2.json
+++ b/tests/test_data/omnivorescookbook.com/omnivorescookbook_2.json
@@ -50,14 +50,14 @@
   "nutrients": {
     "servingSize": "1 serving",
     "calories": "341 kcal",
-    "carbohydrateContent": "28.1 g",
-    "proteinContent": "16.5 g",
     "fatContent": "18.3 g",
     "saturatedFatContent": "4 g",
-    "cholesterolContent": "40 mg",
+    "carbohydrateContent": "28.1 g",
+    "sugarContent": "4.9 g",
+    "proteinContent": "16.5 g",
     "sodiumContent": "651 mg",
     "fiberContent": "1.8 g",
-    "sugarContent": "4.9 g"
+    "cholesterolContent": "40 mg"
   },
   "image": "https://omnivorescookbook.com/wp-content/uploads/2020/06/200430_Beef-Pan-Fried-Noodles_550.jpg",
   "keywords": [
diff --git a/tests/test_data/onceuponachef.com/onceuponachef_1.json b/tests/test_data/onceuponachef.com/onceuponachef_1.json
index aeaa29cd..a18f9e0b 100644
--- a/tests/test_data/onceuponachef.com/onceuponachef_1.json
+++ b/tests/test_data/onceuponachef.com/onceuponachef_1.json
@@ -40,12 +40,12 @@
     "servingSize": "1 slice",
     "calories": "166",
     "fatContent": "6 g",
-    "carbohydrateContent": "26 g",
-    "proteinContent": "2 g",
     "saturatedFatContent": "4 g",
+    "carbohydrateContent": "26 g",
     "sugarContent": "17 g",
-    "fiberContent": "1 g",
+    "proteinContent": "2 g",
     "sodiumContent": "117 mg",
+    "fiberContent": "1 g",
     "cholesterolContent": "31 mg"
   },
   "image": "https://www.onceuponachef.com/images/2009/09/Pumpkin-Bread-100.jpg",
diff --git a/tests/test_data/onceuponachef.com/onceuponachef_2.json b/tests/test_data/onceuponachef.com/onceuponachef_2.json
index 8aeb426d..620c1577 100644
--- a/tests/test_data/onceuponachef.com/onceuponachef_2.json
+++ b/tests/test_data/onceuponachef.com/onceuponachef_2.json
@@ -71,12 +71,12 @@
     "servingSize": "approximately 1 cup",
     "calories": "357",
     "fatContent": "20 g",
-    "carbohydrateContent": "40 g",
-    "proteinContent": "9 g",
     "saturatedFatContent": "2 g",
+    "carbohydrateContent": "40 g",
     "sugarContent": "12 g",
-    "fiberContent": "11 g",
+    "proteinContent": "9 g",
     "sodiumContent": "306 mg",
+    "fiberContent": "11 g",
     "cholesterolContent": "0 mg"
   },
   "image": "https://www.onceuponachef.com/images/2014/06/Black-Bean-and-Corn-Salad.jpg",
diff --git a/tests/test_data/onesweetappetite.com/onesweetappetite.json b/tests/test_data/onesweetappetite.com/onesweetappetite.json
index d5707816..337ed272 100644
--- a/tests/test_data/onesweetappetite.com/onesweetappetite.json
+++ b/tests/test_data/onesweetappetite.com/onesweetappetite.json
@@ -42,15 +42,15 @@
   "nutrients": {
     "servingSize": "1 g",
     "calories": "394 kcal",
-    "carbohydrateContent": "11 g",
-    "proteinContent": "39 g",
     "fatContent": "20 g",
     "saturatedFatContent": "8 g",
-    "cholesterolContent": "129 mg",
+    "unsaturatedFatContent": "11 g",
+    "carbohydrateContent": "11 g",
+    "sugarContent": "2 g",
+    "proteinContent": "39 g",
     "sodiumContent": "656 mg",
     "fiberContent": "1 g",
-    "sugarContent": "2 g",
-    "unsaturatedFatContent": "11 g"
+    "cholesterolContent": "129 mg"
   },
   "image": "https://onesweetappetite.com/wp-content/uploads/2021/07/ranch-chicken-recipe-6.jpg"
 }
diff --git a/tests/test_data/paleorunningmomma.com/paleorunningmomma.json b/tests/test_data/paleorunningmomma.com/paleorunningmomma.json
index ceaa2ecb..6d9e059c 100644
--- a/tests/test_data/paleorunningmomma.com/paleorunningmomma.json
+++ b/tests/test_data/paleorunningmomma.com/paleorunningmomma.json
@@ -40,16 +40,16 @@
   "ratings": 4.56,
   "ratings_count": 100,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "422 kcal",
-    "carbohydrateContent": "9 g",
-    "proteinContent": "29 g",
     "fatContent": "31 g",
     "saturatedFatContent": "22 g",
-    "cholesterolContent": "99 mg",
+    "carbohydrateContent": "9 g",
+    "sugarContent": "2 g",
+    "proteinContent": "29 g",
     "sodiumContent": "432 mg",
     "fiberContent": "2 g",
-    "sugarContent": "2 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "99 mg"
   },
   "image": "https://www.paleorunningmomma.com/wp-content/uploads/2020/12/beef-stroganoff-9.jpg",
   "keywords": [
diff --git a/tests/test_data/peelwithzeal.com/peelwithzeal_1.json b/tests/test_data/peelwithzeal.com/peelwithzeal_1.json
index 02edb119..dada8e39 100644
--- a/tests/test_data/peelwithzeal.com/peelwithzeal_1.json
+++ b/tests/test_data/peelwithzeal.com/peelwithzeal_1.json
@@ -44,12 +44,12 @@
     "9x13 casserole dish"
   ],
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "233 kcal",
+    "fatContent": "15 g",
     "carbohydrateContent": "19 g",
     "proteinContent": "5 g",
-    "fatContent": "15 g",
-    "fiberContent": "1 g",
-    "servingSize": "1 serving"
+    "fiberContent": "1 g"
   },
   "image": "https://www.peelwithzeal.com/wp-content/uploads/2022/06/molasses-baked-beans.jpg",
   "keywords": [
diff --git a/tests/test_data/peelwithzeal.com/peelwithzeal_2.json b/tests/test_data/peelwithzeal.com/peelwithzeal_2.json
index b6e44fe0..a267d336 100644
--- a/tests/test_data/peelwithzeal.com/peelwithzeal_2.json
+++ b/tests/test_data/peelwithzeal.com/peelwithzeal_2.json
@@ -73,13 +73,13 @@
     "Large mixing bowl"
   ],
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "178 kcal",
-    "carbohydrateContent": "5 g",
-    "proteinContent": "9 g",
     "fatContent": "14 g",
-    "fiberContent": "2 g",
+    "carbohydrateContent": "5 g",
     "sugarContent": "2 g",
-    "servingSize": "1 serving"
+    "proteinContent": "9 g",
+    "fiberContent": "2 g"
   },
   "image": "https://www.peelwithzeal.com/wp-content/uploads/2023/12/cajun-crab-dip-cold.jpg",
   "keywords": [
diff --git a/tests/test_data/persnicketyplates.com/persnicketyplates.json b/tests/test_data/persnicketyplates.com/persnicketyplates.json
index 5b14ad86..23d99628 100644
--- a/tests/test_data/persnicketyplates.com/persnicketyplates.json
+++ b/tests/test_data/persnicketyplates.com/persnicketyplates.json
@@ -35,15 +35,15 @@
   "nutrients": {
     "servingSize": "1 g",
     "calories": "638 kcal",
-    "carbohydrateContent": "42 g",
-    "proteinContent": "34 g",
     "fatContent": "36 g",
     "saturatedFatContent": "13 g",
-    "cholesterolContent": "122 mg",
+    "unsaturatedFatContent": "19 g",
+    "carbohydrateContent": "42 g",
+    "sugarContent": "35 g",
+    "proteinContent": "34 g",
     "sodiumContent": "1591 mg",
     "fiberContent": "2 g",
-    "sugarContent": "35 g",
-    "unsaturatedFatContent": "19 g"
+    "cholesterolContent": "122 mg"
   },
   "image": "https://www.persnicketyplates.com/wp-content/uploads/2023/06/slow-cooker-hawaiian-meatballs-10-SQUARE.jpg",
   "keywords": [
diff --git a/tests/test_data/pinchofyum.com/pinchofyum.json b/tests/test_data/pinchofyum.com/pinchofyum.json
index f5493365..02f1f42c 100644
--- a/tests/test_data/pinchofyum.com/pinchofyum.json
+++ b/tests/test_data/pinchofyum.com/pinchofyum.json
@@ -43,14 +43,14 @@
   "ratings_count": 62,
   "nutrients": {
     "calories": "375 calories",
-    "sugarContent": "5.9 g",
-    "sodiumContent": "732.1 mg",
     "fatContent": "28.6 g",
     "saturatedFatContent": "16.9 g",
     "transFatContent": "0.5 g",
     "carbohydrateContent": "16.2 g",
-    "fiberContent": "2 g",
+    "sugarContent": "5.9 g",
     "proteinContent": "15.5 g",
+    "sodiumContent": "732.1 mg",
+    "fiberContent": "2 g",
     "cholesterolContent": "81 mg"
   },
   "image": "https://pinchofyum.com/wp-content/uploads/Broccoli-Cheese-Soup-2-225x225.jpg",
diff --git a/tests/test_data/pinkowlkitchen.com/pinkowlkitchen_1.json b/tests/test_data/pinkowlkitchen.com/pinkowlkitchen_1.json
index 2a807370..626b64f8 100644
--- a/tests/test_data/pinkowlkitchen.com/pinkowlkitchen_1.json
+++ b/tests/test_data/pinkowlkitchen.com/pinkowlkitchen_1.json
@@ -33,14 +33,14 @@
   "nutrients": {
     "servingSize": "1 slice",
     "calories": "260 kcal",
-    "carbohydrateContent": "38.9 g",
-    "proteinContent": "3.5 g",
     "fatContent": "11.3 g",
     "saturatedFatContent": "4.7 g",
-    "cholesterolContent": "65 mg",
+    "carbohydrateContent": "38.9 g",
+    "sugarContent": "32 g",
+    "proteinContent": "3.5 g",
     "sodiumContent": "173 mg",
     "fiberContent": "0.8 g",
-    "sugarContent": "32 g"
+    "cholesterolContent": "65 mg"
   },
   "image": "https://pinkowlkitchen.com/wp-content/uploads/2023/08/chocolate-chess-pie-featured-image.jpg",
   "keywords": [
diff --git a/tests/test_data/pinkowlkitchen.com/pinkowlkitchen_2.json b/tests/test_data/pinkowlkitchen.com/pinkowlkitchen_2.json
index daa86624..f2d9d1fb 100644
--- a/tests/test_data/pinkowlkitchen.com/pinkowlkitchen_2.json
+++ b/tests/test_data/pinkowlkitchen.com/pinkowlkitchen_2.json
@@ -47,16 +47,16 @@
   "ratings": 4.94,
   "ratings_count": 16,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "200 kcal",
-    "carbohydrateContent": "20.8 g",
-    "proteinContent": "2.6 g",
     "fatContent": "12.6 g",
     "saturatedFatContent": "7.8 g",
-    "cholesterolContent": "46 mg",
+    "carbohydrateContent": "20.8 g",
+    "sugarContent": "18.8 g",
+    "proteinContent": "2.6 g",
     "sodiumContent": "43 mg",
     "fiberContent": "0.6 g",
-    "sugarContent": "18.8 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "46 mg"
   },
   "image": "https://pinkowlkitchen.com/wp-content/uploads/2022/06/chocolate-cream-cold-brew-featured-image.jpg",
   "keywords": [
diff --git a/tests/test_data/platingpixels.com/platingpixels_1.json b/tests/test_data/platingpixels.com/platingpixels_1.json
index 7b34d081..762ec5aa 100644
--- a/tests/test_data/platingpixels.com/platingpixels_1.json
+++ b/tests/test_data/platingpixels.com/platingpixels_1.json
@@ -37,14 +37,14 @@
   "nutrients": {
     "servingSize": "3 ribs",
     "calories": "247 kcal",
-    "carbohydrateContent": "7 g",
-    "proteinContent": "23 g",
     "fatContent": "14 g",
     "saturatedFatContent": "5 g",
-    "cholesterolContent": "65 mg",
+    "carbohydrateContent": "7 g",
+    "sugarContent": "6 g",
+    "proteinContent": "23 g",
     "sodiumContent": "1152 mg",
     "fiberContent": "1 g",
-    "sugarContent": "6 g"
+    "cholesterolContent": "65 mg"
   },
   "image": "https://www.platingpixels.com/wp-content/uploads/2021/01/Instant-Pot-Beef-Short-Ribs-recipe-1.jpg",
   "keywords": [
diff --git a/tests/test_data/platingpixels.com/platingpixels_2.json b/tests/test_data/platingpixels.com/platingpixels_2.json
index 302412b8..bc425490 100644
--- a/tests/test_data/platingpixels.com/platingpixels_2.json
+++ b/tests/test_data/platingpixels.com/platingpixels_2.json
@@ -75,16 +75,16 @@
   "nutrients": {
     "servingSize": "1 piece with gravy",
     "calories": "669 kcal",
-    "carbohydrateContent": "49 g",
-    "proteinContent": "44 g",
     "fatContent": "32 g",
     "saturatedFatContent": "8 g",
+    "unsaturatedFatContent": "22 g",
     "transFatContent": "0.2 g",
-    "cholesterolContent": "147 mg",
+    "carbohydrateContent": "49 g",
+    "sugarContent": "8 g",
+    "proteinContent": "44 g",
     "sodiumContent": "1147 mg",
     "fiberContent": "2 g",
-    "sugarContent": "8 g",
-    "unsaturatedFatContent": "22 g"
+    "cholesterolContent": "147 mg"
   },
   "image": "https://www.platingpixels.com/wp-content/uploads/2022/09/Chicken-Fried-Chicken-recipe-1.jpg",
   "keywords": [
diff --git a/tests/test_data/plowingthroughlife.com/plowingthroughlife_1.json b/tests/test_data/plowingthroughlife.com/plowingthroughlife_1.json
index 1bad3e48..33e8e6cf 100644
--- a/tests/test_data/plowingthroughlife.com/plowingthroughlife_1.json
+++ b/tests/test_data/plowingthroughlife.com/plowingthroughlife_1.json
@@ -32,16 +32,16 @@
   "ratings": 5.0,
   "ratings_count": 20,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "306 kcal",
-    "carbohydrateContent": "23 g",
-    "proteinContent": "15 g",
     "fatContent": "17 g",
     "saturatedFatContent": "11 g",
-    "cholesterolContent": "49 mg",
+    "carbohydrateContent": "23 g",
+    "sugarContent": "8 g",
+    "proteinContent": "15 g",
     "sodiumContent": "828 mg",
     "fiberContent": "1 g",
-    "sugarContent": "8 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "49 mg"
   },
   "image": "https://plowingthroughlife.com/wp-content/uploads/2020/05/Farmhouse-Mac-and-cheese-FI.jpg",
   "keywords": [
diff --git a/tests/test_data/plowingthroughlife.com/plowingthroughlife_2.json b/tests/test_data/plowingthroughlife.com/plowingthroughlife_2.json
index 0b9c4793..cda4ca28 100644
--- a/tests/test_data/plowingthroughlife.com/plowingthroughlife_2.json
+++ b/tests/test_data/plowingthroughlife.com/plowingthroughlife_2.json
@@ -58,18 +58,18 @@
   "ratings": 5.0,
   "ratings_count": 13,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "951 kcal",
-    "carbohydrateContent": "128 g",
-    "proteinContent": "9 g",
     "fatContent": "47 g",
     "saturatedFatContent": "24 g",
+    "unsaturatedFatContent": "6 g",
     "transFatContent": "2 g",
-    "cholesterolContent": "54 mg",
+    "carbohydrateContent": "128 g",
+    "sugarContent": "75 g",
+    "proteinContent": "9 g",
     "sodiumContent": "1417 mg",
     "fiberContent": "0.4 g",
-    "sugarContent": "75 g",
-    "unsaturatedFatContent": "6 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "54 mg"
   },
   "image": "https://plowingthroughlife.com/wp-content/uploads/2022/08/Can-Cinnamon-Rolls-Heavy-Cream-FI.jpeg",
   "keywords": [
diff --git a/tests/test_data/primaledgehealth.com/primaledgehealth.json b/tests/test_data/primaledgehealth.com/primaledgehealth.json
index df43a7ce..98a537cf 100644
--- a/tests/test_data/primaledgehealth.com/primaledgehealth.json
+++ b/tests/test_data/primaledgehealth.com/primaledgehealth.json
@@ -28,15 +28,15 @@
   "ratings": 5.0,
   "ratings_count": 4,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "212 kcal",
-    "carbohydrateContent": "5 g",
-    "proteinContent": "8 g",
     "fatContent": "18 g",
     "saturatedFatContent": "11 g",
-    "cholesterolContent": "67 mg",
-    "sodiumContent": "69 mg",
+    "carbohydrateContent": "5 g",
     "sugarContent": "1 g",
-    "servingSize": "1 serving"
+    "proteinContent": "8 g",
+    "sodiumContent": "69 mg",
+    "cholesterolContent": "67 mg"
   },
   "image": "https://www.primaledgehealth.com/wp-content/uploads/2021/02/no-bake-custard-1.jpg",
   "keywords": [
diff --git a/tests/test_data/rainbowplantlife.com/rainbowplantlife.json b/tests/test_data/rainbowplantlife.com/rainbowplantlife.json
index 860f4efc..46600dc3 100644
--- a/tests/test_data/rainbowplantlife.com/rainbowplantlife.json
+++ b/tests/test_data/rainbowplantlife.com/rainbowplantlife.json
@@ -42,17 +42,17 @@
   "ratings": 4.96,
   "ratings_count": 62,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "298 kcal",
-    "carbohydrateContent": "52 g",
-    "proteinContent": "4 g",
     "fatContent": "10 g",
     "saturatedFatContent": "2 g",
+    "unsaturatedFatContent": "7 g",
     "transFatContent": "1 g",
-    "sodiumContent": "260 mg",
-    "fiberContent": "2 g",
+    "carbohydrateContent": "52 g",
     "sugarContent": "31 g",
-    "unsaturatedFatContent": "7 g",
-    "servingSize": "1 serving"
+    "proteinContent": "4 g",
+    "sodiumContent": "260 mg",
+    "fiberContent": "2 g"
   },
   "dietary_restrictions": [
     "Vegan"
diff --git a/tests/test_data/rainbowplantlife.com/rainbowplantlife_groups.json b/tests/test_data/rainbowplantlife.com/rainbowplantlife_groups.json
index d0ccc39d..bd69ab8f 100644
--- a/tests/test_data/rainbowplantlife.com/rainbowplantlife_groups.json
+++ b/tests/test_data/rainbowplantlife.com/rainbowplantlife_groups.json
@@ -80,16 +80,16 @@
   "ratings": 4.98,
   "ratings_count": 68,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "358 kcal",
-    "carbohydrateContent": "45 g",
-    "proteinContent": "10 g",
     "fatContent": "16 g",
     "saturatedFatContent": "2 g",
-    "sodiumContent": "562 mg",
-    "fiberContent": "3 g",
-    "sugarContent": "3 g",
     "unsaturatedFatContent": "13 g",
-    "servingSize": "1 serving"
+    "carbohydrateContent": "45 g",
+    "sugarContent": "3 g",
+    "proteinContent": "10 g",
+    "sodiumContent": "562 mg",
+    "fiberContent": "3 g"
   },
   "dietary_restrictions": [
     "Vegan",
diff --git a/tests/test_data/realfood.tesco.com/realfoodtesco_1.json b/tests/test_data/realfood.tesco.com/realfoodtesco_1.json
index 997afc6b..08e40350 100644
--- a/tests/test_data/realfood.tesco.com/realfoodtesco_1.json
+++ b/tests/test_data/realfood.tesco.com/realfoodtesco_1.json
@@ -40,8 +40,8 @@
     "saturatedFatContent": "2 grams saturated fat",
     "carbohydrateContent": "41.6 grams carbohydrate",
     "sugarContent": "16 grams sugar",
-    "fiberContent": "13.1 grams fibre",
-    "proteinContent": "15.1 grams protein"
+    "proteinContent": "15.1 grams protein",
+    "fiberContent": "13.1 grams fibre"
   },
   "image": "https://realfood.tesco.com/media/images/1400x919-Roasted-cauliflower-tagine-d35191d9-d524-482a-8db8-11b122f4cbf0-0-1400x919.jpg",
   "keywords": [
diff --git a/tests/test_data/realfood.tesco.com/realfoodtesco_2.json b/tests/test_data/realfood.tesco.com/realfoodtesco_2.json
index 875d8fb8..0c0da82e 100644
--- a/tests/test_data/realfood.tesco.com/realfoodtesco_2.json
+++ b/tests/test_data/realfood.tesco.com/realfoodtesco_2.json
@@ -59,8 +59,8 @@
     "saturatedFatContent": "3 grams saturated fat",
     "carbohydrateContent": "14.3 grams carbohydrate",
     "sugarContent": "9 grams sugar",
-    "fiberContent": "5.6 grams fibre",
-    "proteinContent": "8.5 grams protein"
+    "proteinContent": "8.5 grams protein",
+    "fiberContent": "5.6 grams fibre"
   },
   "image": "https://realfood.tesco.com/media/images/RFO-1400x919-CauliflowerSteaks-9b3cfef8-bc5e-4d41-b25b-1341fa3db1e0-0-1400x919.jpg"
 }
diff --git a/tests/test_data/realsimple.com/realsimple.json b/tests/test_data/realsimple.com/realsimple.json
index 231cfe7f..1fbe910f 100644
--- a/tests/test_data/realsimple.com/realsimple.json
+++ b/tests/test_data/realsimple.com/realsimple.json
@@ -37,14 +37,14 @@
   "ratings_count": 136,
   "nutrients": {
     "calories": "636 kcal",
+    "fatContent": "43 g",
+    "saturatedFatContent": "26 g",
+    "unsaturatedFatContent": "0 g",
     "carbohydrateContent": "52 g",
-    "cholesterolContent": "192 mg",
+    "sugarContent": "47 g",
     "proteinContent": "9 g",
-    "saturatedFatContent": "26 g",
     "sodiumContent": "387 mg",
-    "sugarContent": "47 g",
-    "fatContent": "43 g",
-    "unsaturatedFatContent": "0 g"
+    "cholesterolContent": "192 mg"
   },
   "image": "https://www.realsimple.com/thmb/OyWqkHucZsWzklIA4ld59Eesj2o=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc()/classic-cheesecake_300-70617627cf5f4f5eae7f1a11018713ec.jpg"
 }
diff --git a/tests/test_data/recept.se/recept.json b/tests/test_data/recept.se/recept.json
index f00d360d..18d18f79 100644
--- a/tests/test_data/recept.se/recept.json
+++ b/tests/test_data/recept.se/recept.json
@@ -30,11 +30,11 @@
   "ratings": 4.4,
   "ratings_count": 197,
   "nutrients": {
+    "servingSize": "1 styck",
     "calories": "87424 calories",
-    "carbohydrateContent": "12.6 g",
     "fatContent": "3.7 g",
-    "proteinContent": "0.7 g",
-    "servingSize": "1 styck"
+    "carbohydrateContent": "12.6 g",
+    "proteinContent": "0.7 g"
   },
   "dietary_restrictions": [
     "Low Lactose Diet"
diff --git a/tests/test_data/recipegirl.com/recipegirl_1.json b/tests/test_data/recipegirl.com/recipegirl_1.json
index 31fbec37..9c666af3 100644
--- a/tests/test_data/recipegirl.com/recipegirl_1.json
+++ b/tests/test_data/recipegirl.com/recipegirl_1.json
@@ -38,14 +38,14 @@
   "nutrients": {
     "servingSize": "1 serving",
     "calories": "770 kcal",
-    "carbohydrateContent": "98 g",
-    "proteinContent": "24 g",
     "fatContent": "28 g",
     "saturatedFatContent": "15 g",
-    "cholesterolContent": "82 mg",
+    "carbohydrateContent": "98 g",
+    "sugarContent": "4 g",
+    "proteinContent": "24 g",
     "sodiumContent": "203 mg",
     "fiberContent": "4 g",
-    "sugarContent": "4 g"
+    "cholesterolContent": "82 mg"
   },
   "image": "https://www.recipegirl.com/wp-content/uploads/2007/12/PW-Clam-Linguine-1.jpeg",
   "keywords": [
diff --git a/tests/test_data/recipegirl.com/recipegirl_2.json b/tests/test_data/recipegirl.com/recipegirl_2.json
index d37ed503..d59f72f5 100644
--- a/tests/test_data/recipegirl.com/recipegirl_2.json
+++ b/tests/test_data/recipegirl.com/recipegirl_2.json
@@ -73,16 +73,16 @@
   "nutrients": {
     "servingSize": "1 serving",
     "calories": "642 kcal",
-    "carbohydrateContent": "16 g",
-    "proteinContent": "49 g",
     "fatContent": "42 g",
     "saturatedFatContent": "22 g",
+    "unsaturatedFatContent": "15 g",
     "transFatContent": "1 g",
-    "cholesterolContent": "237 mg",
+    "carbohydrateContent": "16 g",
+    "sugarContent": "5 g",
+    "proteinContent": "49 g",
     "sodiumContent": "1225 mg",
     "fiberContent": "2 g",
-    "sugarContent": "5 g",
-    "unsaturatedFatContent": "15 g"
+    "cholesterolContent": "237 mg"
   },
   "image": "https://www.recipegirl.com/wp-content/uploads/2008/09/Chicken-Breasts-Stuffed-with-Goat-Cheese-and-Sun-Dried-Tomatoes-1.jpeg",
   "keywords": [
diff --git a/tests/test_data/reciperunner.com/reciperunner.json b/tests/test_data/reciperunner.com/reciperunner.json
index 26e042da..0d21ac30 100644
--- a/tests/test_data/reciperunner.com/reciperunner.json
+++ b/tests/test_data/reciperunner.com/reciperunner.json
@@ -38,18 +38,18 @@
   "ratings": 4.6,
   "ratings_count": 13,
   "nutrients": {
+    "servingSize": "1",
     "calories": "71 calories",
-    "carbohydrateContent": "9 grams carbohydrates",
-    "cholesterolContent": "23 milligrams cholesterol",
     "fatContent": "3 grams fat",
-    "fiberContent": "0 grams fiber",
-    "proteinContent": "1 grams protein",
     "saturatedFatContent": "2 grams saturated fat",
-    "servingSize": "1",
-    "sodiumContent": "50 grams sodium",
-    "sugarContent": "4 grams sugar",
+    "unsaturatedFatContent": "1 grams unsaturated fat",
     "transFatContent": "0 grams trans fat",
-    "unsaturatedFatContent": "1 grams unsaturated fat"
+    "carbohydrateContent": "9 grams carbohydrates",
+    "sugarContent": "4 grams sugar",
+    "proteinContent": "1 grams protein",
+    "sodiumContent": "50 grams sodium",
+    "fiberContent": "0 grams fiber",
+    "cholesterolContent": "23 milligrams cholesterol"
   },
   "dietary_restrictions": [
     "Vegetarian Diet"
diff --git a/tests/test_data/redhousespice.com/redhousespice_2.json b/tests/test_data/redhousespice.com/redhousespice_2.json
index 017467dc..4549cecd 100644
--- a/tests/test_data/redhousespice.com/redhousespice_2.json
+++ b/tests/test_data/redhousespice.com/redhousespice_2.json
@@ -33,14 +33,14 @@
   "nutrients": {
     "servingSize": "1 serving",
     "calories": "53 kcal",
-    "carbohydrateContent": "6 g",
-    "proteinContent": "2 g",
     "fatContent": "2 g",
     "saturatedFatContent": "0.3 g",
-    "sodiumContent": "813 mg",
-    "fiberContent": "1 g",
+    "unsaturatedFatContent": "11 g",
+    "carbohydrateContent": "6 g",
     "sugarContent": "3 g",
-    "unsaturatedFatContent": "11 g"
+    "proteinContent": "2 g",
+    "sodiumContent": "813 mg",
+    "fiberContent": "1 g"
   },
   "dietary_restrictions": [
     "Vegan Diet",
diff --git a/tests/test_data/ricette.giallozafferano.it/giallozafferano.json b/tests/test_data/ricette.giallozafferano.it/giallozafferano.json
index 990388da..e60052da 100644
--- a/tests/test_data/ricette.giallozafferano.it/giallozafferano.json
+++ b/tests/test_data/ricette.giallozafferano.it/giallozafferano.json
@@ -41,13 +41,13 @@
   "ratings_count": 27,
   "nutrients": {
     "calories": "250 kcal",
-    "carbohydrateContent": "22.3 g",
-    "sugarContent": "22.3 g",
     "fatContent": "15.96 g",
     "saturatedFatContent": "8.61 g",
+    "carbohydrateContent": "22.3 g",
+    "sugarContent": "22.3 g",
+    "sodiumContent": "115 mg",
     "fiberContent": "1.9 g",
-    "cholesterolContent": "125 mg",
-    "sodiumContent": "115 mg"
+    "cholesterolContent": "125 mg"
   },
   "image": "https://www.giallozafferano.it/images/5-534/Bavarese-alle-fragole_650x433_wm.jpg",
   "keywords": [
diff --git a/tests/test_data/saltpepperskillet.com/saltpepperskillet.json b/tests/test_data/saltpepperskillet.com/saltpepperskillet.json
index e8b37223..b6c4f158 100644
--- a/tests/test_data/saltpepperskillet.com/saltpepperskillet.json
+++ b/tests/test_data/saltpepperskillet.com/saltpepperskillet.json
@@ -33,18 +33,18 @@
   "ratings": 5.0,
   "ratings_count": 5,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "563 kcal",
-    "carbohydrateContent": "39 g",
-    "proteinContent": "36 g",
     "fatContent": "29 g",
     "saturatedFatContent": "8 g",
+    "unsaturatedFatContent": "18 g",
     "transFatContent": "0.2 g",
-    "cholesterolContent": "143 mg",
+    "carbohydrateContent": "39 g",
+    "sugarContent": "38 g",
+    "proteinContent": "36 g",
     "sodiumContent": "28475 mg",
     "fiberContent": "0.3 g",
-    "sugarContent": "38 g",
-    "unsaturatedFatContent": "18 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "143 mg"
   },
   "image": "https://saltpepperskillet.com/wp-content/uploads/smoked-whole-chicken-horizontal-head-on.jpg",
   "keywords": [
diff --git a/tests/test_data/sandwichtribunal.com/sandwhichtribunal.json b/tests/test_data/sandwichtribunal.com/sandwhichtribunal.json
index 0bedd447..b2caeb74 100644
--- a/tests/test_data/sandwichtribunal.com/sandwhichtribunal.json
+++ b/tests/test_data/sandwichtribunal.com/sandwhichtribunal.json
@@ -28,8 +28,8 @@
   "prep_time": 10,
   "cuisine": "American,Southern",
   "nutrients": {
-    "calories": "70 kcal",
-    "servingSize": "1 serving"
+    "servingSize": "1 serving",
+    "calories": "70 kcal"
   },
   "image": "https://www.sandwichtribunal.com/wp-content/uploads/2023/01/IMG_7386.jpg",
   "keywords": [
diff --git a/tests/test_data/savorynothings.com/savorynothings_2.json b/tests/test_data/savorynothings.com/savorynothings_2.json
index a2389912..d111d0b0 100644
--- a/tests/test_data/savorynothings.com/savorynothings_2.json
+++ b/tests/test_data/savorynothings.com/savorynothings_2.json
@@ -77,16 +77,16 @@
     "spatula"
   ],
   "nutrients": {
+    "servingSize": "1 slice",
     "calories": "291 kcal",
-    "carbohydrateContent": "44 g",
-    "proteinContent": "4 g",
     "fatContent": "11 g",
     "saturatedFatContent": "3 g",
-    "cholesterolContent": "37 mg",
+    "carbohydrateContent": "44 g",
+    "sugarContent": "23 g",
+    "proteinContent": "4 g",
     "sodiumContent": "100 mg",
     "fiberContent": "2 g",
-    "sugarContent": "23 g",
-    "servingSize": "1 slice"
+    "cholesterolContent": "37 mg"
   },
   "dietary_restrictions": [
     "Vegetarian Diet"
diff --git a/tests/test_data/seriouseats.com/seriouseats.json b/tests/test_data/seriouseats.com/seriouseats.json
index 9a351916..d22d5627 100644
--- a/tests/test_data/seriouseats.com/seriouseats.json
+++ b/tests/test_data/seriouseats.com/seriouseats.json
@@ -29,17 +29,17 @@
   "ratings": 4.5,
   "ratings_count": 72,
   "nutrients": {
+    "servingSize": "Makes 2 single- or 1 double-crusted 9-inch pie (regular or deep-dish)",
     "calories": "125 kcal",
+    "fatContent": "9 g",
+    "saturatedFatContent": "6 g",
+    "unsaturatedFatContent": "0 g",
     "carbohydrateContent": "9 g",
-    "cholesterolContent": "24 mg",
-    "fiberContent": "0 g",
+    "sugarContent": "1 g",
     "proteinContent": "1 g",
-    "saturatedFatContent": "6 g",
     "sodiumContent": "79 mg",
-    "sugarContent": "1 g",
-    "fatContent": "9 g",
-    "servingSize": "Makes 2 single- or 1 double-crusted 9-inch pie (regular or deep-dish)",
-    "unsaturatedFatContent": "0 g"
+    "fiberContent": "0 g",
+    "cholesterolContent": "24 mg"
   },
   "image": "https://www.seriouseats.com/thmb/xNY4o_dHNwORzdutYZqOPCUiVOg=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc()/__opt__aboutcom__coeus__resources__content_migration__serious_eats__seriouseats.com__images__2016__09__20160712-blind-bake-pie-crust-vicky-wasik-10-306bb1237a62413fa754cac8e53db637.jpg",
   "keywords": [
diff --git a/tests/test_data/simple-veganista.com/simpleveganista.json b/tests/test_data/simple-veganista.com/simpleveganista.json
index 3776c81f..581d6f65 100644
--- a/tests/test_data/simple-veganista.com/simpleveganista.json
+++ b/tests/test_data/simple-veganista.com/simpleveganista.json
@@ -51,14 +51,14 @@
   "ratings_count": 11,
   "nutrients": {
     "calories": "358 calories",
-    "sugarContent": "9.4 g",
-    "sodiumContent": "504.5 mg",
     "fatContent": "1.9 g",
     "saturatedFatContent": "0.5 g",
     "transFatContent": "0 g",
     "carbohydrateContent": "74 g",
-    "fiberContent": "10.7 g",
+    "sugarContent": "9.4 g",
     "proteinContent": "15.7 g",
+    "sodiumContent": "504.5 mg",
+    "fiberContent": "10.7 g",
     "cholesterolContent": "0 mg"
   },
   "image": "https://simple-veganista.com/wp-content/uploads/2022/02/easy-vegan-jambalaya-recipe-5-225x225.jpg"
diff --git a/tests/test_data/simplyquinoa.com/simplyquinoa.json b/tests/test_data/simplyquinoa.com/simplyquinoa.json
index b2d5d91f..0a827e34 100644
--- a/tests/test_data/simplyquinoa.com/simplyquinoa.json
+++ b/tests/test_data/simplyquinoa.com/simplyquinoa.json
@@ -37,14 +37,14 @@
   "nutrients": {
     "servingSize": "1 pancake",
     "calories": "104 kcal",
-    "carbohydrateContent": "13 g",
-    "proteinContent": "3 g",
     "fatContent": "4 g",
     "saturatedFatContent": "1 g",
-    "cholesterolContent": "23 mg",
+    "carbohydrateContent": "13 g",
+    "sugarContent": "2 g",
+    "proteinContent": "3 g",
     "sodiumContent": "43 mg",
     "fiberContent": "1 g",
-    "sugarContent": "2 g"
+    "cholesterolContent": "23 mg"
   },
   "image": "https://www.simplyquinoa.com/wp-content/uploads/2022/05/gluten-free-pancakes-recipe-apple-cinnamon.jpg",
   "keywords": [
diff --git a/tests/test_data/simplyrecipes.com/simplyrecipes_1.json b/tests/test_data/simplyrecipes.com/simplyrecipes_1.json
index 27e2299e..fad1cc14 100644
--- a/tests/test_data/simplyrecipes.com/simplyrecipes_1.json
+++ b/tests/test_data/simplyrecipes.com/simplyrecipes_1.json
@@ -34,17 +34,17 @@
   "ratings": 4.7,
   "ratings_count": 7,
   "nutrients": {
+    "servingSize": "6 to 8 servings (makes about 3 quarts)",
     "calories": "160 kcal",
+    "fatContent": "2 g",
+    "saturatedFatContent": "1 g",
+    "unsaturatedFatContent": "0 g",
     "carbohydrateContent": "10 g",
-    "cholesterolContent": "62 mg",
-    "fiberContent": "1 g",
+    "sugarContent": "2 g",
     "proteinContent": "23 g",
-    "saturatedFatContent": "1 g",
     "sodiumContent": "878 mg",
-    "sugarContent": "2 g",
-    "fatContent": "2 g",
-    "servingSize": "6 to 8 servings (makes about 3 quarts)",
-    "unsaturatedFatContent": "0 g"
+    "fiberContent": "1 g",
+    "cholesterolContent": "62 mg"
   },
   "image": "https://www.simplyrecipes.com/thmb/IPv95EDDPxwGIzCd4s-GQV5RYrs=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc()/__opt__aboutcom__coeus__resources__content_migration__simply_recipes__uploads__2017__09__2017-10-23-ChickenRiceSoup-6-84f5ab39c30e4830bf08b5bb163c5e19.jpg",
   "keywords": [
diff --git a/tests/test_data/simplyrecipes.com/simplyrecipes_2.json b/tests/test_data/simplyrecipes.com/simplyrecipes_2.json
index 4572f98c..3433c6e9 100644
--- a/tests/test_data/simplyrecipes.com/simplyrecipes_2.json
+++ b/tests/test_data/simplyrecipes.com/simplyrecipes_2.json
@@ -42,15 +42,15 @@
   "ratings_count": 1,
   "nutrients": {
     "calories": "406 kcal",
+    "fatContent": "18 g",
+    "saturatedFatContent": "3 g",
+    "unsaturatedFatContent": "0 g",
     "carbohydrateContent": "56 g",
-    "cholesterolContent": "0 mg",
-    "fiberContent": "7 g",
+    "sugarContent": "12 g",
     "proteinContent": "8 g",
-    "saturatedFatContent": "3 g",
     "sodiumContent": "840 mg",
-    "sugarContent": "12 g",
-    "fatContent": "18 g",
-    "unsaturatedFatContent": "0 g"
+    "fiberContent": "7 g",
+    "cholesterolContent": "0 mg"
   },
   "image": "https://www.simplyrecipes.com/thmb/NM4jagjRMB_ZTpbZeuucmcNHanQ=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc()/Simply-Recipes-ParsnipLobster-Rolls-LEAD-01-edc9b93d39f14541b530cf9f22543bb2.jpg",
   "keywords": [
diff --git a/tests/test_data/simplywhisked.com/simplywhisked.json b/tests/test_data/simplywhisked.com/simplywhisked.json
index 7aef7039..250ba11d 100644
--- a/tests/test_data/simplywhisked.com/simplywhisked.json
+++ b/tests/test_data/simplywhisked.com/simplywhisked.json
@@ -42,14 +42,14 @@
   "nutrients": {
     "servingSize": "1 bowl",
     "calories": "203 calories",
-    "sugarContent": "2.5 g",
-    "sodiumContent": "620.6 mg",
     "fatContent": "12.2 g",
     "saturatedFatContent": "3.3 g",
     "transFatContent": "0 g",
     "carbohydrateContent": "8.6 g",
-    "fiberContent": "1.4 g",
+    "sugarContent": "2.5 g",
     "proteinContent": "15.8 g",
+    "sodiumContent": "620.6 mg",
+    "fiberContent": "1.4 g",
     "cholesterolContent": "63 mg"
   },
   "image": "https://www.simplywhisked.com/wp-content/uploads/2016/02/Buffalo-Chicken-Chili-4-1-225x225.jpg",
diff --git a/tests/test_data/skinnytaste.com/skinnytaste.json b/tests/test_data/skinnytaste.com/skinnytaste.json
index 37512973..bfe0f1f3 100644
--- a/tests/test_data/skinnytaste.com/skinnytaste.json
+++ b/tests/test_data/skinnytaste.com/skinnytaste.json
@@ -32,14 +32,14 @@
   "nutrients": {
     "servingSize": "1 piece",
     "calories": "195 kcal",
-    "carbohydrateContent": "3.5 g",
-    "proteinContent": "31 g",
     "fatContent": "6 g",
     "saturatedFatContent": "2 g",
-    "cholesterolContent": "91 mg",
+    "carbohydrateContent": "3.5 g",
+    "sugarContent": "0.5 g",
+    "proteinContent": "31 g",
     "sodiumContent": "183 mg",
     "fiberContent": "1.5 g",
-    "sugarContent": "0.5 g"
+    "cholesterolContent": "91 mg"
   },
   "image": "https://www.skinnytaste.com/wp-content/uploads/2011/03/Grilled-Chicken-with-Spinach-and-Melted-Mozzarella-10.jpg",
   "keywords": [
diff --git a/tests/test_data/smulweb.nl/smulweb.json b/tests/test_data/smulweb.nl/smulweb.json
index 32108c38..b7a4a653 100644
--- a/tests/test_data/smulweb.nl/smulweb.json
+++ b/tests/test_data/smulweb.nl/smulweb.json
@@ -45,9 +45,9 @@
   "ratings_count": 14,
   "nutrients": {
     "calories": "611.87 kcal",
+    "fatContent": "34.43 g",
     "carbohydrateContent": "46.88 g",
-    "proteinContent": "23.11 g",
-    "fatContent": "34.43 g"
+    "proteinContent": "23.11 g"
   },
   "image": "https://d1mlbwr23caxox.cloudfront.net/public/sites/default/files/styles/recipe_teaser/public/recipe-images/IMG_1442.JPG_16.jpg?VersionId=HiJx912VlnCnUKiAYHKDqDsZLjsSy9zI",
   "keywords": [
diff --git a/tests/test_data/spendwithpennies.com/spendwithpennies.json b/tests/test_data/spendwithpennies.com/spendwithpennies.json
index f1f0f6c1..bb32c6d9 100644
--- a/tests/test_data/spendwithpennies.com/spendwithpennies.json
+++ b/tests/test_data/spendwithpennies.com/spendwithpennies.json
@@ -35,16 +35,16 @@
   "ratings": 4.9,
   "ratings_count": 148,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "349 kcal",
-    "carbohydrateContent": "65 g",
-    "proteinContent": "5 g",
     "fatContent": "10 g",
     "saturatedFatContent": "7 g",
-    "cholesterolContent": "1 mg",
+    "carbohydrateContent": "65 g",
+    "sugarContent": "45 g",
+    "proteinContent": "5 g",
     "sodiumContent": "25 mg",
     "fiberContent": "4 g",
-    "sugarContent": "45 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "1 mg"
   },
   "image": "https://www.spendwithpennies.com/wp-content/uploads/2013/10/Chocolate-Pudding-Cake-SpendWithPennies-B-4.jpg",
   "keywords": [
diff --git a/tests/test_data/staysnatched.com/staysnatched.json b/tests/test_data/staysnatched.com/staysnatched.json
index 8efa6a38..7efb18a1 100644
--- a/tests/test_data/staysnatched.com/staysnatched.json
+++ b/tests/test_data/staysnatched.com/staysnatched.json
@@ -45,11 +45,11 @@
   "ratings": 4.89,
   "ratings_count": 60,
   "nutrients": {
-    "calories": "346 kcal",
     "servingSize": "1 serving",
+    "calories": "346 kcal",
+    "fatContent": "8 g",
     "carbohydrateContent": "34 g",
-    "proteinContent": "23 g",
-    "fatContent": "8 g"
+    "proteinContent": "23 g"
   },
   "image": "https://www.staysnatched.com/wp-content/uploads/2016/12/crock-pot-chili-mac-6.jpg",
   "keywords": [
diff --git a/tests/test_data/sunbasket.com/sunbasket.json b/tests/test_data/sunbasket.com/sunbasket.json
index c78ebba1..342b450c 100644
--- a/tests/test_data/sunbasket.com/sunbasket.json
+++ b/tests/test_data/sunbasket.com/sunbasket.json
@@ -28,14 +28,14 @@
   "ratings": 5.0,
   "ratings_count": 1340,
   "nutrients": {
+    "calories": "760",
+    "fatContent": "34g",
+    "saturatedFatContent": "6g",
     "sugarContent": "15g",
     "proteinContent": "31g",
+    "sodiumContent": "900mg",
     "fiberContent": "7g",
-    "fatContent": "34g",
-    "cholesterolContent": "75mg",
-    "calories": "760",
-    "saturatedFatContent": "6g",
-    "sodiumContent": "900mg"
+    "cholesterolContent": "75mg"
   },
   "image": "https://cdn.sunbasket.com/100408c8-f908-404e-a494-099fad9fed44.jpg"
 }
diff --git a/tests/test_data/sundpaabudget.dk/sundpaabudget.json b/tests/test_data/sundpaabudget.dk/sundpaabudget.json
index 91e06a41..81f5c8f7 100644
--- a/tests/test_data/sundpaabudget.dk/sundpaabudget.json
+++ b/tests/test_data/sundpaabudget.dk/sundpaabudget.json
@@ -36,8 +36,8 @@
   "ratings": 4.0,
   "ratings_count": 40,
   "nutrients": {
-    "calories": "300 kcal",
-    "servingSize": "1 person"
+    "servingSize": "1 person",
+    "calories": "300 kcal"
   },
   "image": "https://sundpaabudget.dk/wp-content/uploads/2021/08/20210803123311_IMG_0714.jpg"
 }
diff --git a/tests/test_data/sunset.com/sunset.json b/tests/test_data/sunset.com/sunset.json
index 9a1a5bac..d093f6b4 100644
--- a/tests/test_data/sunset.com/sunset.json
+++ b/tests/test_data/sunset.com/sunset.json
@@ -45,13 +45,13 @@
   "ratings_count": 30,
   "nutrients": {
     "calories": "164",
-    "carbohydrateContent": "25",
-    "cholesterolContent": "16",
     "fatContent": "4.3",
-    "fiberContent": "1.4",
-    "proteinContent": "5.6",
     "saturatedFatContent": "2.6",
-    "sodiumContent": "363"
+    "carbohydrateContent": "25",
+    "proteinContent": "5.6",
+    "sodiumContent": "363",
+    "fiberContent": "1.4",
+    "cholesterolContent": "16"
   },
   "image": "https://img.sunset02.com/sites/default/files/styles/4_3_horizontal_-_900x675/public/crisp-top-sourdough-stuffing-su.jpg"
 }
diff --git a/tests/test_data/sweetcsdesigns.com/sweetcsdesigns.json b/tests/test_data/sweetcsdesigns.com/sweetcsdesigns.json
index 8ded30b5..c8a1b5ef 100644
--- a/tests/test_data/sweetcsdesigns.com/sweetcsdesigns.json
+++ b/tests/test_data/sweetcsdesigns.com/sweetcsdesigns.json
@@ -33,18 +33,18 @@
   "ratings": 4.9,
   "ratings_count": 544,
   "nutrients": {
+    "servingSize": "1",
     "calories": "205 calories",
-    "carbohydrateContent": "32 grams carbohydrates",
-    "cholesterolContent": "0 milligrams cholesterol",
     "fatContent": "7 grams fat",
-    "fiberContent": "3 grams fiber",
-    "proteinContent": "4 grams protein",
     "saturatedFatContent": "1 grams saturated fat",
-    "servingSize": "1",
-    "sodiumContent": "70 milligrams sodium",
-    "sugarContent": "2 grams sugar",
+    "unsaturatedFatContent": "6 grams unsaturated fat",
     "transFatContent": "0 grams trans fat",
-    "unsaturatedFatContent": "6 grams unsaturated fat"
+    "carbohydrateContent": "32 grams carbohydrates",
+    "sugarContent": "2 grams sugar",
+    "proteinContent": "4 grams protein",
+    "sodiumContent": "70 milligrams sodium",
+    "fiberContent": "3 grams fiber",
+    "cholesterolContent": "0 milligrams cholesterol"
   },
   "dietary_restrictions": [
     "Gluten Free Diet"
diff --git a/tests/test_data/sweetpeasandsaffron.com/sweetpeasandsaffron.json b/tests/test_data/sweetpeasandsaffron.com/sweetpeasandsaffron.json
index b77ea7eb..550c1c31 100644
--- a/tests/test_data/sweetpeasandsaffron.com/sweetpeasandsaffron.json
+++ b/tests/test_data/sweetpeasandsaffron.com/sweetpeasandsaffron.json
@@ -67,13 +67,13 @@
   "nutrients": {
     "servingSize": "1 /4 batch",
     "calories": "189 kcal",
-    "carbohydrateContent": "37 g",
-    "proteinContent": "5 g",
     "fatContent": "3 g",
     "saturatedFatContent": "1 g",
+    "carbohydrateContent": "37 g",
+    "sugarContent": "7 g",
+    "proteinContent": "5 g",
     "sodiumContent": "2 mg",
-    "fiberContent": "6 g",
-    "sugarContent": "7 g"
+    "fiberContent": "6 g"
   },
   "image": "https://sweetpeasandsaffron.com/wp-content/uploads/2017/05/steel-cut-oats-7-ways-TEXT.jpg",
   "keywords": [
diff --git a/tests/test_data/taste.com.au/tasteau_1.json b/tests/test_data/taste.com.au/tasteau_1.json
index d3f74b5f..b98a5334 100644
--- a/tests/test_data/taste.com.au/tasteau_1.json
+++ b/tests/test_data/taste.com.au/tasteau_1.json
@@ -40,8 +40,8 @@
     "carbohydrateContent": "76.6 grams carbohydrates",
     "sugarContent": "8.2 grams sugar",
     "proteinContent": "60.3 grams protein",
-    "cholesterolContent": "157.1 milligrams cholesterol",
-    "sodiumContent": "4.8 milligrams sodium"
+    "sodiumContent": "4.8 milligrams sodium",
+    "cholesterolContent": "157.1 milligrams cholesterol"
   },
   "image": "https://img.taste.com.au/g-jb09b4/taste/2021/05/mexican-chicken-pasta-bake-171430-2.jpg",
   "keywords": [
diff --git a/tests/test_data/tasteofhome.com/tasteofhome.json b/tests/test_data/tasteofhome.com/tasteofhome.json
index 5a259db2..f3390d4c 100644
--- a/tests/test_data/tasteofhome.com/tasteofhome.json
+++ b/tests/test_data/tasteofhome.com/tasteofhome.json
@@ -38,11 +38,11 @@
   "nutrients": {
     "calories": "228 calories",
     "fatContent": "5g fat (2g saturated fat)",
-    "cholesterolContent": "63mg cholesterol",
-    "sodiumContent": "436mg sodium",
     "carbohydrateContent": "18g carbohydrate (8g sugars",
+    "proteinContent": "27g protein. Diabetic Exchanges: 3 lean meat",
+    "sodiumContent": "436mg sodium",
     "fiberContent": "2g fiber)",
-    "proteinContent": "27g protein. Diabetic Exchanges: 3 lean meat"
+    "cholesterolContent": "63mg cholesterol"
   },
   "image": "https://www.tasteofhome.com/wp-content/uploads/0001/01/Pressure-Cooker-Sauerbraten_EXPS_THN18_39243_E06_06_2b.jpg"
 }
diff --git a/tests/test_data/tastesbetterfromscratch.com/tastesbetterfromscratch.json b/tests/test_data/tastesbetterfromscratch.com/tastesbetterfromscratch.json
index 9619cc25..f031bcd0 100644
--- a/tests/test_data/tastesbetterfromscratch.com/tastesbetterfromscratch.json
+++ b/tests/test_data/tastesbetterfromscratch.com/tastesbetterfromscratch.json
@@ -36,16 +36,16 @@
   "ratings": 4.99,
   "ratings_count": 744,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "310 kcal",
-    "carbohydrateContent": "9 g",
-    "proteinContent": "36 g",
     "fatContent": "13 g",
     "saturatedFatContent": "5 g",
-    "cholesterolContent": "124 mg",
+    "carbohydrateContent": "9 g",
+    "sugarContent": "7 g",
+    "proteinContent": "36 g",
     "sodiumContent": "554 mg",
     "fiberContent": "1 g",
-    "sugarContent": "7 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "124 mg"
   },
   "image": "https://tastesbetterfromscratch.com/wp-content/uploads/2020/05/Pulled-Pork-5.jpg",
   "keywords": [
diff --git a/tests/test_data/tastesoflizzyt.com/tastesoflizzyt.json b/tests/test_data/tastesoflizzyt.com/tastesoflizzyt.json
index bc8b9ee1..5f55ce1e 100644
--- a/tests/test_data/tastesoflizzyt.com/tastesoflizzyt.json
+++ b/tests/test_data/tastesoflizzyt.com/tastesoflizzyt.json
@@ -37,13 +37,13 @@
   "ratings": 4.92,
   "ratings_count": 12,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "111 kcal",
-    "carbohydrateContent": "18 g",
-    "proteinContent": "1 g",
     "fatContent": "3 g",
-    "sodiumContent": "119 mg",
+    "carbohydrateContent": "18 g",
     "sugarContent": "9 g",
-    "servingSize": "1 serving"
+    "proteinContent": "1 g",
+    "sodiumContent": "119 mg"
   },
   "image": "https://www.tastesoflizzyt.com/wp-content/uploads/2020/11/molasses-cookies-500-1.jpg",
   "keywords": [
diff --git a/tests/test_data/thecookierookie.com/thecookierookie_1.json b/tests/test_data/thecookierookie.com/thecookierookie_1.json
index 477960f2..7396e9e4 100644
--- a/tests/test_data/thecookierookie.com/thecookierookie_1.json
+++ b/tests/test_data/thecookierookie.com/thecookierookie_1.json
@@ -44,16 +44,16 @@
   "nutrients": {
     "servingSize": "0.75 pounds",
     "calories": "565 kcal",
-    "carbohydrateContent": "18 g",
-    "proteinContent": "60 g",
     "fatContent": "27 g",
     "saturatedFatContent": "7 g",
+    "unsaturatedFatContent": "12 g",
     "transFatContent": "0.1 g",
-    "cholesterolContent": "238 mg",
+    "carbohydrateContent": "18 g",
+    "sugarContent": "18 g",
+    "proteinContent": "60 g",
     "sodiumContent": "3719 mg",
     "fiberContent": "0.2 g",
-    "sugarContent": "18 g",
-    "unsaturatedFatContent": "12 g"
+    "cholesterolContent": "238 mg"
   },
   "image": "https://www.thecookierookie.com/wp-content/uploads/2022/12/featured-brown-sugar-glazed-ham-recipe.jpg",
   "keywords": [
diff --git a/tests/test_data/thecookierookie.com/thecookierookie_2.json b/tests/test_data/thecookierookie.com/thecookierookie_2.json
index abf90ce3..f041d4c5 100644
--- a/tests/test_data/thecookierookie.com/thecookierookie_2.json
+++ b/tests/test_data/thecookierookie.com/thecookierookie_2.json
@@ -63,17 +63,17 @@
   "ratings": 4.68,
   "ratings_count": 331,
   "nutrients": {
+    "servingSize": "1 fillet",
     "calories": "456 kcal",
-    "carbohydrateContent": "10 g",
-    "proteinContent": "47 g",
     "fatContent": "26 g",
     "saturatedFatContent": "4 g",
-    "cholesterolContent": "125 mg",
+    "unsaturatedFatContent": "19 g",
+    "carbohydrateContent": "10 g",
+    "sugarContent": "2 g",
+    "proteinContent": "47 g",
     "sodiumContent": "692 mg",
     "fiberContent": "5 g",
-    "sugarContent": "2 g",
-    "servingSize": "1 fillet",
-    "unsaturatedFatContent": "19 g"
+    "cholesterolContent": "125 mg"
   },
   "image": "https://www.thecookierookie.com/wp-content/uploads/2014/01/featured-grilled-salmon-with-avocado-salsa-recipe.jpg",
   "keywords": [
diff --git a/tests/test_data/theexpertguides.com/theexpertguides.json b/tests/test_data/theexpertguides.com/theexpertguides.json
index b391d627..7a2c02f8 100644
--- a/tests/test_data/theexpertguides.com/theexpertguides.json
+++ b/tests/test_data/theexpertguides.com/theexpertguides.json
@@ -33,8 +33,8 @@
   "prep_time": 15,
   "cuisine": "Italian",
   "nutrients": {
-    "calories": "638 kcal",
-    "servingSize": "1 serving"
+    "servingSize": "1 serving",
+    "calories": "638 kcal"
   },
   "image": "https://theexpertguides.com/wp-content/uploads/2022/08/pexels-photo-1487511-1.webp",
   "keywords": [
diff --git a/tests/test_data/thekitchencommunity.org/thekitchencommunity.json b/tests/test_data/thekitchencommunity.org/thekitchencommunity.json
index 169f1ed3..378da6cd 100644
--- a/tests/test_data/thekitchencommunity.org/thekitchencommunity.json
+++ b/tests/test_data/thekitchencommunity.org/thekitchencommunity.json
@@ -35,8 +35,8 @@
   "ratings": 5.0,
   "ratings_count": 25,
   "nutrients": {
-    "calories": "574 kcal",
-    "servingSize": "1 serving"
+    "servingSize": "1 serving",
+    "calories": "574 kcal"
   },
   "image": "https://thekitchencommunity.org/wp-content/uploads/2022/01/shutterstock_556523302-1200x801.jpg",
   "keywords": [
diff --git a/tests/test_data/thekitchenmagpie.com/thekitchenmagpie.json b/tests/test_data/thekitchenmagpie.com/thekitchenmagpie.json
index d333e170..79621a79 100644
--- a/tests/test_data/thekitchenmagpie.com/thekitchenmagpie.json
+++ b/tests/test_data/thekitchenmagpie.com/thekitchenmagpie.json
@@ -34,17 +34,17 @@
   "ratings": 4.98,
   "ratings_count": 95,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "158 kcal",
-    "carbohydrateContent": "11 g",
-    "proteinContent": "17 g",
     "fatContent": "5 g",
     "saturatedFatContent": "1 g",
     "transFatContent": "1 g",
-    "cholesterolContent": "94 mg",
+    "carbohydrateContent": "11 g",
+    "sugarContent": "1 g",
+    "proteinContent": "17 g",
     "sodiumContent": "580 mg",
     "fiberContent": "1 g",
-    "sugarContent": "1 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "94 mg"
   },
   "image": "https://www.thekitchenmagpie.com/wp-content/uploads/images/2021/02/salmonloafonplate.jpg",
   "keywords": [
diff --git a/tests/test_data/thekitchn.com/thekitchn.json b/tests/test_data/thekitchn.com/thekitchn.json
index 19cbd153..8418b57f 100644
--- a/tests/test_data/thekitchn.com/thekitchn.json
+++ b/tests/test_data/thekitchn.com/thekitchn.json
@@ -46,17 +46,17 @@
   "ratings": 4.8,
   "ratings_count": 4,
   "nutrients": {
+    "servingSize": "Serves 8",
     "calories": "554 cal",
+    "fatContent": "33.3 g",
+    "saturatedFatContent": "14.4 g",
+    "unsaturatedFatContent": "0.0 g",
     "carbohydrateContent": "34.5 g",
-    "cholesterolContent": "0 mg",
-    "fiberContent": "3.2 g",
+    "sugarContent": "7.5 g",
     "proteinContent": "28.4 g",
-    "saturatedFatContent": "14.4 g",
     "sodiumContent": "801.5 mg",
-    "sugarContent": "7.5 g",
-    "fatContent": "33.3 g",
-    "servingSize": "Serves 8",
-    "unsaturatedFatContent": "0.0 g"
+    "fiberContent": "3.2 g",
+    "cholesterolContent": "0 mg"
   },
   "image": "https://cdn.apartmenttherapy.info/image/upload/f_jpg,q_auto:eco,c_fill,g_auto,w_1500,ar_16:9/k%2FPhoto%2FRecipes%2F2019-10-how-to-beef-manicotti%2F2019-10-04_Kitchn86818_HT-Beef-Manicotti",
   "keywords": [
diff --git a/tests/test_data/themagicalslowcooker.com/themagicalslowcooker_1.json b/tests/test_data/themagicalslowcooker.com/themagicalslowcooker_1.json
index 2053c970..b42aca9a 100644
--- a/tests/test_data/themagicalslowcooker.com/themagicalslowcooker_1.json
+++ b/tests/test_data/themagicalslowcooker.com/themagicalslowcooker_1.json
@@ -29,18 +29,18 @@
   "ratings": 5.0,
   "ratings_count": 1,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "275 kcal",
-    "carbohydrateContent": "2 g",
-    "proteinContent": "31 g",
     "fatContent": "15 g",
     "saturatedFatContent": "6 g",
+    "unsaturatedFatContent": "8 g",
     "transFatContent": "1 g",
-    "cholesterolContent": "98 mg",
+    "carbohydrateContent": "2 g",
+    "sugarContent": "1 g",
+    "proteinContent": "31 g",
     "sodiumContent": "682 mg",
     "fiberContent": "0.4 g",
-    "sugarContent": "1 g",
-    "unsaturatedFatContent": "8 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "98 mg"
   },
   "image": "https://www.themagicalslowcooker.com/wp-content/uploads/2023/08/crockpot-ground-beef-8.jpg",
   "keywords": [
diff --git a/tests/test_data/themagicalslowcooker.com/themagicalslowcooker_2.json b/tests/test_data/themagicalslowcooker.com/themagicalslowcooker_2.json
index 5cbe03c8..43fb4321 100644
--- a/tests/test_data/themagicalslowcooker.com/themagicalslowcooker_2.json
+++ b/tests/test_data/themagicalslowcooker.com/themagicalslowcooker_2.json
@@ -78,18 +78,18 @@
   "ratings": 5.0,
   "ratings_count": 8,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "582 kcal",
-    "carbohydrateContent": "36 g",
-    "proteinContent": "71 g",
     "fatContent": "16 g",
     "saturatedFatContent": "4 g",
+    "unsaturatedFatContent": "10 g",
     "transFatContent": "0.05 g",
-    "cholesterolContent": "182 mg",
+    "carbohydrateContent": "36 g",
+    "sugarContent": "17 g",
+    "proteinContent": "71 g",
     "sodiumContent": "611 mg",
     "fiberContent": "4 g",
-    "sugarContent": "17 g",
-    "unsaturatedFatContent": "10 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "182 mg"
   },
   "image": "https://www.themagicalslowcooker.com/wp-content/uploads/2023/02/crockpot-pork-pot-roast-4.jpg",
   "keywords": [
diff --git a/tests/test_data/themodernproper.com/themodernproper.json b/tests/test_data/themodernproper.com/themodernproper.json
index 57f4dab1..0c4c0527 100644
--- a/tests/test_data/themodernproper.com/themodernproper.json
+++ b/tests/test_data/themodernproper.com/themodernproper.json
@@ -54,14 +54,14 @@
   "ratings_count": 82,
   "nutrients": {
     "calories": "463 calories",
-    "carbohydrateContent": "11 grams carbohydrates",
-    "cholesterolContent": "157 milligrams cholesterol",
     "fatContent": "35 grams fat",
-    "fiberContent": "1 grams fiber",
-    "proteinContent": "27 grams protein",
     "saturatedFatContent": "15 grams saturated fat",
+    "carbohydrateContent": "11 grams carbohydrates",
+    "sugarContent": "1 grams sugar",
+    "proteinContent": "27 grams protein",
     "sodiumContent": "1050 milligrams sodium",
-    "sugarContent": "1 grams sugar"
+    "fiberContent": "1 grams fiber",
+    "cholesterolContent": "157 milligrams cholesterol"
   },
   "image": "https://images.themodernproper.com/billowy-turkey/production/posts/2018/swedish-meatballs-13.jpg?w=960&h=540&q=82&fm=jpg&fit=crop&dm=1599768329&s=a12d3adcc54b1d30b5aa25dc6b922e3f",
   "keywords": [
diff --git a/tests/test_data/therecipecritic.com/therecipecritic.json b/tests/test_data/therecipecritic.com/therecipecritic.json
index 4ddf2e6e..d36582ed 100644
--- a/tests/test_data/therecipecritic.com/therecipecritic.json
+++ b/tests/test_data/therecipecritic.com/therecipecritic.json
@@ -37,17 +37,17 @@
   "prep_time": 5,
   "cuisine": "Italian,Italian American",
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "282 kcal",
-    "carbohydrateContent": "22 g",
-    "proteinContent": "13 g",
     "fatContent": "19 g",
     "saturatedFatContent": "9 g",
-    "cholesterolContent": "40 mg",
+    "unsaturatedFatContent": "4 g",
+    "carbohydrateContent": "22 g",
+    "sugarContent": "6 g",
+    "proteinContent": "13 g",
     "sodiumContent": "345 mg",
     "fiberContent": "2 g",
-    "sugarContent": "6 g",
-    "unsaturatedFatContent": "4 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "40 mg"
   },
   "image": "https://therecipecritic.com/wp-content/uploads/2023/07/burrata-appetizer.jpg",
   "keywords": [
diff --git a/tests/test_data/thespruceeats.com/thespruceeats_1.json b/tests/test_data/thespruceeats.com/thespruceeats_1.json
index 6a2344e1..a7158058 100644
--- a/tests/test_data/thespruceeats.com/thespruceeats_1.json
+++ b/tests/test_data/thespruceeats.com/thespruceeats_1.json
@@ -33,15 +33,15 @@
   "ratings_count": 11,
   "nutrients": {
     "calories": "493 kcal",
+    "fatContent": "36 g",
+    "saturatedFatContent": "18 g",
+    "unsaturatedFatContent": "0 g",
     "carbohydrateContent": "17 g",
-    "cholesterolContent": "119 mg",
-    "fiberContent": "4 g",
+    "sugarContent": "7 g",
     "proteinContent": "29 g",
-    "saturatedFatContent": "18 g",
     "sodiumContent": "1052 mg",
-    "sugarContent": "7 g",
-    "fatContent": "36 g",
-    "unsaturatedFatContent": "0 g"
+    "fiberContent": "4 g",
+    "cholesterolContent": "119 mg"
   },
   "image": "https://www.thespruceeats.com/thmb/jgDiDqHCg2AfmWiuTuc5yZbyuSw=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc()/bell-pepper-sandwich-recipe-5216751-hero-01-bc8d5210259d4674872c92ce5377fc7d.jpg",
   "keywords": [
diff --git a/tests/test_data/thespruceeats.com/thespruceeats_2.json b/tests/test_data/thespruceeats.com/thespruceeats_2.json
index 3d553b69..dac0972c 100644
--- a/tests/test_data/thespruceeats.com/thespruceeats_2.json
+++ b/tests/test_data/thespruceeats.com/thespruceeats_2.json
@@ -74,15 +74,15 @@
   "ratings_count": 15,
   "nutrients": {
     "calories": "386 kcal",
+    "fatContent": "22 g",
+    "saturatedFatContent": "13 g",
+    "unsaturatedFatContent": "0 g",
     "carbohydrateContent": "41 g",
-    "cholesterolContent": "118 mg",
-    "fiberContent": "1 g",
+    "sugarContent": "29 g",
     "proteinContent": "6 g",
-    "saturatedFatContent": "13 g",
     "sodiumContent": "229 mg",
-    "sugarContent": "29 g",
-    "fatContent": "22 g",
-    "unsaturatedFatContent": "0 g"
+    "fiberContent": "1 g",
+    "cholesterolContent": "118 mg"
   },
   "image": "https://www.thespruceeats.com/thmb/ACSQpDA6gMM5sqOI58di9oHkbnM=/1500x0/filters:no_upscale():max_bytes(150000):strip_icc()/peppermint-swirl-brownies-hero-01-00280-7d6d862ae03f4aecab0639e457946a55.jpg",
   "keywords": [
diff --git a/tests/test_data/thewoksoflife.com/thewoksoflife.json b/tests/test_data/thewoksoflife.com/thewoksoflife.json
index 68c0735f..a39de89a 100644
--- a/tests/test_data/thewoksoflife.com/thewoksoflife.json
+++ b/tests/test_data/thewoksoflife.com/thewoksoflife.json
@@ -30,16 +30,16 @@
   "ratings": 4.91,
   "ratings_count": 11,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "175 kcal",
-    "carbohydrateContent": "34 g",
-    "proteinContent": "6 g",
     "fatContent": "2 g",
     "saturatedFatContent": "1 g",
-    "cholesterolContent": "3 mg",
+    "carbohydrateContent": "34 g",
+    "sugarContent": "3 g",
+    "proteinContent": "6 g",
     "sodiumContent": "16 mg",
     "fiberContent": "2 g",
-    "sugarContent": "3 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "3 mg"
   },
   "image": "https://thewoksoflife.com/wp-content/uploads/2018/01/whole-wheat-mantou-9-1.jpg",
   "keywords": [
diff --git a/tests/test_data/thinlicious.com/thinlicious.json b/tests/test_data/thinlicious.com/thinlicious.json
index 8b2adeee..33208ad0 100644
--- a/tests/test_data/thinlicious.com/thinlicious.json
+++ b/tests/test_data/thinlicious.com/thinlicious.json
@@ -39,12 +39,12 @@
   "nutrients": {
     "servingSize": "1 hamburger bun",
     "calories": "394 kcal",
+    "fatContent": "32.1 g",
     "carbohydrateContent": "10 g",
+    "sugarContent": "1.8 g",
     "proteinContent": "20.1 g",
-    "fatContent": "32.1 g",
     "sodiumContent": "368.3 mg",
-    "fiberContent": "5.5 g",
-    "sugarContent": "1.8 g"
+    "fiberContent": "5.5 g"
   },
   "image": "https://thinlicious.com/wp-content/uploads/2023/08/Blog-Cover-Square-19.png",
   "keywords": [
diff --git a/tests/test_data/tidymom.net/tidymom_1.json b/tests/test_data/tidymom.net/tidymom_1.json
index af4323ab..bd67cca5 100644
--- a/tests/test_data/tidymom.net/tidymom_1.json
+++ b/tests/test_data/tidymom.net/tidymom_1.json
@@ -34,18 +34,18 @@
   "prep_time": 10,
   "cuisine": "American",
   "nutrients": {
+    "servingSize": "1",
     "calories": "485 calories",
-    "carbohydrateContent": "36 grams carbohydrates",
-    "cholesterolContent": "61 milligrams cholesterol",
     "fatContent": "29 grams fat",
-    "fiberContent": "2 grams fiber",
-    "proteinContent": "20 grams protein",
     "saturatedFatContent": "10 grams saturated fat",
-    "servingSize": "1",
-    "sodiumContent": "893 milligrams sodium",
-    "sugarContent": "3 grams sugar",
+    "unsaturatedFatContent": "17 grams unsaturated fat",
     "transFatContent": "0 grams trans fat",
-    "unsaturatedFatContent": "17 grams unsaturated fat"
+    "carbohydrateContent": "36 grams carbohydrates",
+    "sugarContent": "3 grams sugar",
+    "proteinContent": "20 grams protein",
+    "sodiumContent": "893 milligrams sodium",
+    "fiberContent": "2 grams fiber",
+    "cholesterolContent": "61 milligrams cholesterol"
   },
   "image": "https://tidymom.net/blog/wp-content/uploads/2021/04/chicken-bacon-ranch-pizza-pic-480x480.jpg"
 }
diff --git a/tests/test_data/tidymom.net/tidymom_2.json b/tests/test_data/tidymom.net/tidymom_2.json
index 5c257559..5c265673 100644
--- a/tests/test_data/tidymom.net/tidymom_2.json
+++ b/tests/test_data/tidymom.net/tidymom_2.json
@@ -111,18 +111,18 @@
   "prep_time": 60,
   "cuisine": "American",
   "nutrients": {
+    "servingSize": "1",
     "calories": "1187 calories",
-    "carbohydrateContent": "134 grams carbohydrates",
-    "cholesterolContent": "212 milligrams cholesterol",
     "fatContent": "71 grams fat",
-    "fiberContent": "1 grams fiber",
-    "proteinContent": "7 grams protein",
     "saturatedFatContent": "41 grams saturated fat",
-    "servingSize": "1",
-    "sodiumContent": "614 milligrams sodium",
-    "sugarContent": "115 grams sugar",
+    "unsaturatedFatContent": "26 grams unsaturated fat",
     "transFatContent": "1 grams trans fat",
-    "unsaturatedFatContent": "26 grams unsaturated fat"
+    "carbohydrateContent": "134 grams carbohydrates",
+    "sugarContent": "115 grams sugar",
+    "proteinContent": "7 grams protein",
+    "sodiumContent": "614 milligrams sodium",
+    "fiberContent": "1 grams fiber",
+    "cholesterolContent": "212 milligrams cholesterol"
   },
   "image": "https://tidymom.net/blog/wp-content/uploads/2023/01/red-velvet-cake-pic-720x720.jpg",
   "keywords": [
diff --git a/tests/test_data/twopeasandtheirpod.com/twopeasandtheirpod_1.json b/tests/test_data/twopeasandtheirpod.com/twopeasandtheirpod_1.json
index 25293cf9..47d189e3 100644
--- a/tests/test_data/twopeasandtheirpod.com/twopeasandtheirpod_1.json
+++ b/tests/test_data/twopeasandtheirpod.com/twopeasandtheirpod_1.json
@@ -72,13 +72,13 @@
   "nutrients": {
     "servingSize": "20 g",
     "calories": "132 kcal",
-    "carbohydrateContent": "11 g",
-    "proteinContent": "8 g",
     "fatContent": "5 g",
     "saturatedFatContent": "2 g",
-    "cholesterolContent": "23 mg",
+    "carbohydrateContent": "11 g",
+    "proteinContent": "8 g",
     "sodiumContent": "123 mg",
-    "fiberContent": "1 g"
+    "fiberContent": "1 g",
+    "cholesterolContent": "23 mg"
   },
   "image": "https://www.twopeasandtheirpod.com/wp-content/uploads/2017/03/Baked-Chicken-Taquitos-1.jpg",
   "keywords": [
diff --git a/tests/test_data/twopeasandtheirpod.com/twopeasandtheirpod_2.json b/tests/test_data/twopeasandtheirpod.com/twopeasandtheirpod_2.json
index b349f650..e882d4c6 100644
--- a/tests/test_data/twopeasandtheirpod.com/twopeasandtheirpod_2.json
+++ b/tests/test_data/twopeasandtheirpod.com/twopeasandtheirpod_2.json
@@ -31,16 +31,16 @@
   "ratings": 5.0,
   "ratings_count": 1,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "71 kcal",
-    "carbohydrateContent": "17 g",
-    "proteinContent": "1 g",
     "fatContent": "0.4 g",
     "saturatedFatContent": "0.1 g",
-    "sodiumContent": "5 mg",
-    "fiberContent": "4 g",
-    "sugarContent": "12 g",
     "unsaturatedFatContent": "0.2 g",
-    "servingSize": "1 serving"
+    "carbohydrateContent": "17 g",
+    "sugarContent": "12 g",
+    "proteinContent": "1 g",
+    "sodiumContent": "5 mg",
+    "fiberContent": "4 g"
   },
   "image": "https://www.twopeasandtheirpod.com/wp-content/uploads/2023/07/Mango-Salad-0715.jpg",
   "keywords": [
diff --git a/tests/test_data/unsophisticook.com/unsophisticook_1.json b/tests/test_data/unsophisticook.com/unsophisticook_1.json
index a243bcb5..7602d890 100644
--- a/tests/test_data/unsophisticook.com/unsophisticook_1.json
+++ b/tests/test_data/unsophisticook.com/unsophisticook_1.json
@@ -30,16 +30,16 @@
     "Di Oro Wide Slotted Turner"
   ],
   "nutrients": {
+    "servingSize": "1 sandwich",
     "calories": "396 calories",
-    "carbohydrateContent": "28 grams carbohydrates",
-    "cholesterolContent": "71.3 milligrams cholesterol",
     "fatContent": "26.3 grams fat",
-    "fiberContent": "2 grams fiber",
-    "proteinContent": "13.6 grams protein",
     "saturatedFatContent": "15.7 grams saturated fat",
-    "servingSize": "1 sandwich",
+    "carbohydrateContent": "28 grams carbohydrates",
+    "sugarContent": "4 grams sugar",
+    "proteinContent": "13.6 grams protein",
     "sodiumContent": "519.1 milligrams sodium",
-    "sugarContent": "4 grams sugar"
+    "fiberContent": "2 grams fiber",
+    "cholesterolContent": "71.3 milligrams cholesterol"
   },
   "image": "https://unsophisticook.com/wp-content/uploads/2016/10/Grilled-Cheese-In-The-Oven-1-720x720.jpg",
   "keywords": [
diff --git a/tests/test_data/unsophisticook.com/unsophisticook_2.json b/tests/test_data/unsophisticook.com/unsophisticook_2.json
index 264a7ba5..eb8ed3f9 100644
--- a/tests/test_data/unsophisticook.com/unsophisticook_2.json
+++ b/tests/test_data/unsophisticook.com/unsophisticook_2.json
@@ -67,18 +67,18 @@
     "Lavatools Instant Read Thermometer"
   ],
   "nutrients": {
+    "servingSize": "1 pork chop w/ gravy",
     "calories": "493 calories",
-    "carbohydrateContent": "8 grams carbohydrates",
-    "cholesterolContent": "160 milligrams cholesterol",
     "fatContent": "32 grams fat",
-    "fiberContent": "1 grams fiber",
-    "proteinContent": "42 grams protein",
     "saturatedFatContent": "12 grams saturated fat",
-    "servingSize": "1 pork chop w/ gravy",
-    "sodiumContent": "422 milligrams sodium",
-    "sugarContent": "3 grams sugar",
+    "unsaturatedFatContent": "15 grams unsaturated fat",
     "transFatContent": "1 grams trans fat",
-    "unsaturatedFatContent": "15 grams unsaturated fat"
+    "carbohydrateContent": "8 grams carbohydrates",
+    "sugarContent": "3 grams sugar",
+    "proteinContent": "42 grams protein",
+    "sodiumContent": "422 milligrams sodium",
+    "fiberContent": "1 grams fiber",
+    "cholesterolContent": "160 milligrams cholesterol"
   },
   "image": "https://unsophisticook.com/wp-content/uploads/2020/12/Pork-Chop-Sour-Cream-Recipe-720x720.jpg",
   "keywords": [
diff --git a/tests/test_data/usapears.org/usapears.json b/tests/test_data/usapears.org/usapears.json
index 4d3ee9fa..fb71e581 100644
--- a/tests/test_data/usapears.org/usapears.json
+++ b/tests/test_data/usapears.org/usapears.json
@@ -29,8 +29,8 @@
     "servingSize": "Serving Size: 1 Pear",
     "calories": "Calories: 230",
     "carbohydrateContent": "Carbohydrate: 34g",
-    "fiberContent": "Dietary Fiber: 7g",
-    "proteinContent": "Protein: 5g"
+    "proteinContent": "Protein: 5g",
+    "fiberContent": "Dietary Fiber: 7g"
   },
   "image": "https://usapears.org/wp-content/uploads/2014/10/Sauteed-Bosc-Pears1.jpg"
 }
diff --git a/tests/test_data/vanillaandbean.com/vanillaandbean_1.json b/tests/test_data/vanillaandbean.com/vanillaandbean_1.json
index 0ee77823..74d1c932 100644
--- a/tests/test_data/vanillaandbean.com/vanillaandbean_1.json
+++ b/tests/test_data/vanillaandbean.com/vanillaandbean_1.json
@@ -61,13 +61,13 @@
   "nutrients": {
     "servingSize": "1 loaf |",
     "calories": "2303 kcal",
-    "carbohydrateContent": "441 g",
-    "proteinContent": "66 g",
     "fatContent": "30 g",
     "saturatedFatContent": "4 g",
+    "carbohydrateContent": "441 g",
+    "sugarContent": "50 g",
+    "proteinContent": "66 g",
     "sodiumContent": "4061 mg",
-    "fiberContent": "29 g",
-    "sugarContent": "50 g"
+    "fiberContent": "29 g"
   },
   "image": "https://vanillaandbean.com/wp-content/uploads/2020/06/aaasourdough-20.jpg",
   "keywords": [
diff --git a/tests/test_data/vanillaandbean.com/vanillaandbean_2.json b/tests/test_data/vanillaandbean.com/vanillaandbean_2.json
index 4dac910c..07abb592 100644
--- a/tests/test_data/vanillaandbean.com/vanillaandbean_2.json
+++ b/tests/test_data/vanillaandbean.com/vanillaandbean_2.json
@@ -38,13 +38,13 @@
   "nutrients": {
     "servingSize": "1 waffle",
     "calories": "150 kcal",
-    "carbohydrateContent": "21 g",
-    "proteinContent": "5 g",
     "fatContent": "6 g",
     "saturatedFatContent": "1 g",
+    "carbohydrateContent": "21 g",
+    "sugarContent": "5 g",
+    "proteinContent": "5 g",
     "sodiumContent": "202 mg",
-    "fiberContent": "3 g",
-    "sugarContent": "5 g"
+    "fiberContent": "3 g"
   },
   "image": "https://vanillaandbean.com/wp-content/uploads/2020/02/waffle-9.jpg",
   "keywords": [
diff --git a/tests/test_data/vegrecipesofindia.com/vegrecipesofindia.json b/tests/test_data/vegrecipesofindia.com/vegrecipesofindia.json
index 4c3b394f..63553ad6 100644
--- a/tests/test_data/vegrecipesofindia.com/vegrecipesofindia.json
+++ b/tests/test_data/vegrecipesofindia.com/vegrecipesofindia.json
@@ -57,16 +57,16 @@
   "ratings": 4.93,
   "ratings_count": 66,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "59 kcal",
-    "carbohydrateContent": "10 g",
-    "proteinContent": "4 g",
     "fatContent": "1 g",
     "saturatedFatContent": "1 g",
-    "sodiumContent": "385 mg",
-    "fiberContent": "2 g",
-    "sugarContent": "2 g",
     "unsaturatedFatContent": "2 g",
-    "servingSize": "1 serving"
+    "carbohydrateContent": "10 g",
+    "sugarContent": "2 g",
+    "proteinContent": "4 g",
+    "sodiumContent": "385 mg",
+    "fiberContent": "2 g"
   },
   "dietary_restrictions": [
     "Vegan Diet",
diff --git a/tests/test_data/watchwhatueat.com/watchwhatueat.json b/tests/test_data/watchwhatueat.com/watchwhatueat.json
index c3bb0176..9ab6979e 100644
--- a/tests/test_data/watchwhatueat.com/watchwhatueat.json
+++ b/tests/test_data/watchwhatueat.com/watchwhatueat.json
@@ -43,14 +43,14 @@
   "ratings": 4.59,
   "ratings_count": 17,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "99 kcal",
-    "carbohydrateContent": "17.9 g",
-    "proteinContent": "5.1 g",
     "fatContent": "2.9 g",
     "saturatedFatContent": "1 g",
-    "fiberContent": "6.4 g",
+    "carbohydrateContent": "17.9 g",
     "sugarContent": "7.2 g",
-    "servingSize": "1 serving"
+    "proteinContent": "5.1 g",
+    "fiberContent": "6.4 g"
   },
   "dietary_restrictions": [
     "Low Fat Diet",
diff --git a/tests/test_data/wellplated.com/wellplated.json b/tests/test_data/wellplated.com/wellplated.json
index 7a6dba26..b9ea26c2 100644
--- a/tests/test_data/wellplated.com/wellplated.json
+++ b/tests/test_data/wellplated.com/wellplated.json
@@ -43,15 +43,15 @@
   "nutrients": {
     "servingSize": "1 (of 6), about 1 cup",
     "calories": "229 kcal",
-    "carbohydrateContent": "25 g",
-    "proteinContent": "9 g",
     "fatContent": "11 g",
     "saturatedFatContent": "4 g",
+    "unsaturatedFatContent": "6 g",
     "transFatContent": "0.2 g",
-    "cholesterolContent": "103 mg",
-    "fiberContent": "4 g",
+    "carbohydrateContent": "25 g",
     "sugarContent": "2 g",
-    "unsaturatedFatContent": "6 g"
+    "proteinContent": "9 g",
+    "fiberContent": "4 g",
+    "cholesterolContent": "103 mg"
   },
   "image": "https://www.wellplated.com/wp-content/uploads/2023/07/Egg-Fried-Rice-Recipe.jpg",
   "keywords": [
diff --git a/tests/test_data/whatsgabycooking.com/whatsgabycooking.json b/tests/test_data/whatsgabycooking.com/whatsgabycooking.json
index cad7ebb4..d6c4cb76 100644
--- a/tests/test_data/whatsgabycooking.com/whatsgabycooking.json
+++ b/tests/test_data/whatsgabycooking.com/whatsgabycooking.json
@@ -27,6 +27,7 @@
     "Limes",
     "Fresh Cilantro"
   ],
+  "instructions": "Slice the chicken breasts into thin strips, about the size of your finger. Combine the lime juice, olive oil, garlic, salt, cumin, chili powder and red pepper flakes in a bowl and whisk to combine. Add the chicken and marinate for 1 hour.\nHeat a large cast iron skillet over high heat. Add a tablespoon of olive oil. Add the chicken mixture, marinade included, and sauté until fully cooked. Using a pair of tongs, remove the chicken from the skillet and add the vegetables. Sauté until tender and charred. Add the chicken back into the cast iron skillet and toss to combine.\nServe in a bowl with rice, black beans, charred corn, chopped tomatoes, a big spoonful of guacamole and a wedge of lime.",
   "instructions_list": [
     "Slice the chicken breasts into thin strips, about the size of your finger. Combine the lime juice, olive oil, garlic, salt, cumin, chili powder and red pepper flakes in a bowl and whisk to combine. Add the chicken and marinate for 1 hour.",
     "Heat a large cast iron skillet over high heat. Add a tablespoon of olive oil. Add the chicken mixture, marinade included, and sauté until fully cooked. Using a pair of tongs, remove the chicken from the skillet and add the vegetables. Sauté until tender and charred. Add the chicken back into the cast iron skillet and toss to combine.",
@@ -40,18 +41,18 @@
   "ratings": 4.91,
   "ratings_count": 22,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "421 kcal",
-    "carbohydrateContent": "40 g",
-    "proteinContent": "29 g",
     "fatContent": "17 g",
     "saturatedFatContent": "3 g",
     "unsaturatedFatContent": "12 g",
     "transFatContent": "0.01 g",
+    "carbohydrateContent": "40 g",
+    "sugarContent": "3 g",
+    "proteinContent": "29 g",
     "sodiumContent": "396 mg",
     "fiberContent": "6 g",
-    "sugarContent": "3 g",
-    "cholesterolContent": "73 mg",
-    "servingSize": "1 serving"
+    "cholesterolContent": "73 mg"
   },
   "image": "https://whatsgabycooking.com/wp-content/uploads/2019/01/Albertsons-Chicken-Fajita-Bowls-Prep-Shot-2-copy-2.jpg",
   "keywords": [
diff --git a/tests/test_data/whatsgabycooking.com/whatsgabycooking_1.json b/tests/test_data/whatsgabycooking.com/whatsgabycooking_1.json
index f0b3ffa6..cfa0593f 100644
--- a/tests/test_data/whatsgabycooking.com/whatsgabycooking_1.json
+++ b/tests/test_data/whatsgabycooking.com/whatsgabycooking_1.json
@@ -31,17 +31,17 @@
   "ratings": 4.89,
   "ratings_count": 18,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "342 kcal",
-    "carbohydrateContent": "32 g",
-    "proteinContent": "16 g",
     "fatContent": "20 g",
     "saturatedFatContent": "4 g",
-    "cholesterolContent": "10 mg",
+    "unsaturatedFatContent": "14 g",
+    "carbohydrateContent": "32 g",
+    "sugarContent": "6 g",
+    "proteinContent": "16 g",
     "sodiumContent": "354 mg",
     "fiberContent": "10 g",
-    "sugarContent": "6 g",
-    "unsaturatedFatContent": "14 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "10 mg"
   },
   "image": "https://whatsgabycooking.com/wp-content/uploads/2023/01/WGC-__-Caesar-Parm-Roasted-Broccoli-1-870x580-1.jpg",
   "keywords": [
diff --git a/tests/test_data/whatsgabycooking.com/whatsgabycooking_2.json b/tests/test_data/whatsgabycooking.com/whatsgabycooking_2.json
index 75b8dfe8..091d7c80 100644
--- a/tests/test_data/whatsgabycooking.com/whatsgabycooking_2.json
+++ b/tests/test_data/whatsgabycooking.com/whatsgabycooking_2.json
@@ -69,18 +69,18 @@
   "ratings": 4.9,
   "ratings_count": 19,
   "nutrients": {
+    "servingSize": "1 serving",
     "calories": "461 kcal",
-    "carbohydrateContent": "13 g",
-    "proteinContent": "30 g",
     "fatContent": "32 g",
     "saturatedFatContent": "15 g",
+    "unsaturatedFatContent": "15 g",
     "transFatContent": "0.01 g",
-    "cholesterolContent": "143 mg",
+    "carbohydrateContent": "13 g",
+    "sugarContent": "4 g",
+    "proteinContent": "30 g",
     "sodiumContent": "1226 mg",
     "fiberContent": "2 g",
-    "sugarContent": "4 g",
-    "unsaturatedFatContent": "15 g",
-    "servingSize": "1 serving"
+    "cholesterolContent": "143 mg"
   },
   "image": "https://whatsgabycooking.com/wp-content/uploads/2022/04/Stonyfield-__-Greek-Lamb-Meatballs-4.jpg",
   "keywords": [
diff --git a/tests/test_data/wholefoodsmarket.com/wholefoods.json b/tests/test_data/wholefoodsmarket.com/wholefoods.json
index 646e689c..93e35bc3 100644
--- a/tests/test_data/wholefoodsmarket.com/wholefoods.json
+++ b/tests/test_data/wholefoodsmarket.com/wholefoods.json
@@ -31,10 +31,10 @@
     "calories": "410 calories",
     "fatContent": "22 grams",
     "saturatedFatContent": "11 grams",
-    "cholesterolContent": "50 milligrams",
-    "sodiumContent": "350 milligrams",
     "carbohydrateContent": "31 grams",
-    "proteinContent": "24 grams"
+    "proteinContent": "24 grams",
+    "sodiumContent": "350 milligrams",
+    "cholesterolContent": "50 milligrams"
   },
   "image": "http://assets.wholefoodsmarket.com/recipes/3604/460/290/3604-1.jpg"
 }
diff --git a/tests/test_data/yummly.com/yummly.json b/tests/test_data/yummly.com/yummly.json
index f0ebb2c1..f71e3e87 100644
--- a/tests/test_data/yummly.com/yummly.json
+++ b/tests/test_data/yummly.com/yummly.json
@@ -29,14 +29,14 @@
   "ratings_count": 20,
   "nutrients": {
     "calories": "380 calories",
-    "carbohydrateContent": "38 grams",
-    "cholesterolContent": "40 milligrams",
     "fatContent": "18 grams",
-    "fiberContent": "2 grams",
-    "proteinContent": "16 grams",
     "saturatedFatContent": "7 grams",
+    "carbohydrateContent": "38 grams",
+    "sugarContent": "1 grams",
+    "proteinContent": "16 grams",
     "sodiumContent": "590 milligrams",
-    "sugarContent": "1 grams"
+    "fiberContent": "2 grams",
+    "cholesterolContent": "40 milligrams"
   },
   "image": "https://lh3.googleusercontent.com/UyOcAUtHtGMhwFNayuGToyY9V-S1vl9OOs8ycgXxJXevQDyHTkX5_luRkhU-hTHi4AlSkGA_lDUMxV-uQKfDFPY=w1920-h1920-c-rj-v1-e365",
   "keywords": [