Home > Back-end >  How can I edit to have 2 digits after dot in json file with Python?
How can I edit to have 2 digits after dot in json file with Python?

Time:12-09

{
  "JSON_DATA": [
    {
      "id": 0,
      "name": "Name",
      "image": "food_0.jpg",
      "kcal": "32",
      "url": "bat",
      "desc": "null",
      "time": "null",
      "first_unit": "Unit1",
      "carb": "72",
      "protein": "23",
      "fat": "4",
      "units": [
        {
          "unit": "Unit1",
          "amount": "15.0000",
          "calory": "32.4877372383",
          "carbohydrt": "5.44751985283",
          "protein": "1.75822099387",
          "fat": "0.155740956864",
          "calcium": "8.71466176412",
          "cholestrl": "0.0",
          "fiber_td": "1.85840511552",
          "iron": "0.711263854542",
          "lipid_tot": "0.155740956864",
          "potassium": "87.793890567",
          "sodium": "15.666368442",
          "vit_a_iu": "11.8943218304",
          "vit_c": "2.25616660116"
        },
        {
          "unit": "Unit2",
          "amount": "110.0000",
          "calory": "238.243406414",
          "carbohydrt": "39.9484789208",
          "protein": "12.8936206218",
          "fat": "1.14210035034",
          "calcium": "63.9075196035",
          "cholestrl": "0.0",
          "fiber_td": "13.6283041805",
          "iron": "5.21593493331",
          "lipid_tot": "1.14210035034",
          "potassium": "643.821864158",
          "sodium": "114.886701908",
          "vit_a_iu": "87.2250267561",
          "vit_c": "16.5452217418"
        },
        {
          "unit": "Unit3",
          "amount": "1.0000",
          "calory": "2.16584914922",
          "carbohydrt": "0.363167990189",
          "protein": "0.117214732925",
          "fat": "0.0103827304576",
          "calcium": "0.580977450941",
          "cholestrl": "0.0",
          "fiber_td": "0.123893674368",
          "iron": "0.0474175903028",
          "lipid_tot": "0.0103827304576",
          "potassium": "5.8529260378",
          "sodium": "1.0444245628",
          "vit_a_iu": "0.792954788692",
          "vit_c": "0.150411106744"
        }
      ]
    }
  ]
}

Hello, I have such a json file. there are very long comma numbers between this json data. I want to edit them, for example, I want to save the value 32.4877372383 of the calory key in the Unit1 object as 32.48.

How can I do this in Python or what other way can I do it? I just want 2 digits left after the dot.

CodePudding user response:

You can use this method

print("{:.2f}".format(32.4877372383))

You can change 2 in 2f to any number of decimal points you want to show.

CodePudding user response:

import json

with open("data.json", "r") as jsonFile:
    data = json.load(jsonFile)

dicts_list = data["JSON_DATA"][0]["units"]
for i, d in enumerate(dicts_list):
    for k, v in dicts_list[i].items():
        if '.' in v:
            dicts_list[i][k] = '.'.join(((v.split(".")[0], v.split(".")[1][:2])))
        
with open("modified_data.json", "w") as jsonFile:
    json.dump(data, jsonFile, indent=4)
  • Related