簡體   English   中英

如何在 JSON 文件中進行更改並稍后在 Python 或 JS 中保存?

[英]How can I make changes in the JSON file and save it later in Python or JS?

我有一個 JSON 文件,我想將其中的鍵 (food_image) 值分配給循環中的索引值。例如 food_image0, food_image1 .. food_image{loop index}

然后我想將此 JSON 文件保存為 JSON 文件。 .所有帶有food_image鍵的值都會以food_image為前綴,並通過在循環中添加索引后綴來重寫。 這就是我想要的

JSON

{
    "DATABASE":
    [
        {
            "food_id": 0,
            "food_name": "Food Name ABC", 
            "food_image": "imagesite/abc.jpg", // food_image_0
            "food_kcal": "32",
            "units":
            [
                {
                    "amount": "15.0000",
                    "calory": "32.4877372383",
                },
                {
                    "amount": "110.0000",
                    "calory": "238.243406414",
                }
            ]
        },
        {
            "food_id": 1,
            "food_name": "Food Name XYZ", 
            "food_image": "imagesite/xyz.jpg", // food_image_1
            "food_kcal": "32",
            "units":
            [
                {
                    "amount": "15.0000",
                    "calory": "32.4877372383",
                },
                {
                    "amount": "110.0000",
                    "calory": "238.243406414",
                }
            ]
        }
        
    ]
}

Python

import json
with open('json_file.json',encoding="utf8") as myfile:
    data=myfile.read()

obj = json.loads(data)
for idx, i in enumerate(obj['DATABASE']):
    print(i["food_image"])


結果:JSON

{
    "DATABASE":
    [
        {
            "food_id": 0,
            "food_name": "Food Name ABC", 
            "food_image": "food_image_0.jpg", 
            "food_kcal": "32",
            "units":
            [
                {
                    "amount": "15.0000",
                    "calory": "32.4877372383",
                },
                {
                    "amount": "110.0000",
                    "calory": "238.243406414",
                }
            ]
        },
        {
            "food_id": 1,
            "food_name": "Food Name XYZ", 
            "food_image": "food_image_1.jpg"
            "food_kcal": "32",
            "units":
            [
                {
                    "amount": "15.0000",
                    "calory": "32.4877372383",
                },
                {
                    "amount": "110.0000",
                    "calory": "238.243406414",
                }
            ]
        }
        
    ]
}

將 JSON 文件讀入 Python 對象后,對對象進行變異,然后將其寫回文件。

在下面的示例中,我創建了一個單獨的文件而不是覆蓋原始文件(如果您進行其他突變,我建議您也這樣做,以防出現錯誤)。

import json
import os

source = 'json_file.json'
dest = 'updated.json'

with open(source) as f:
    content = json.load(f)

for i, entry in enumerate(content['DATABASE']):
    _, extension = os.path.splitext(entry['food_image'])
    entry['food_image'] = f'food_image_{i}{extension}'

with open(dest, 'w+') as f:
    json.dump(content, f)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM