首页 > 解决方案 > 使用 Python 在 JSON 对象中逐行插入值

问题描述

我正在尝试使用 Python 逐行将新字段及其值写入现有 JSON 对象,但它会不断创建另一个键。这是一个示例代码:

# my object
data_set = {'fruits':[]}

fruit_state = 'eatable'

# the values i want to insert line by line into the same JSON object
data_set['fruits'].append({'apple' : fruit_state})
data_set['fruits'].append({'strawberry' : fruit_state})
data_set['fruits'].append({'lemon' : fruit_state})

json_dump = json.dumps(data_set, indent=4)
print(json_dump)

quit()

这给了我:

{
    "fruits": [
        {
            "apple": "eatable"
        },
        {
            "strawberry": "eatable"
        },
        {
            "lemon": "eatable"
        }
    ]
}

但我试图得到一些东西,所以结果是:

{
    "fruits": [
        {
            "apple": "eatable",
            "strawberry": "eatable",
            "lemon": "eatable"
        }
    ]
}

我可以将每个值放在一个数组中并传递它,但我真的想逐行插入这些值。你有什么想法吗?提前致谢。

标签: pythonjsonpython-3.xlist

解决方案


看起来你最好fruits直接持有子对象,而不是包含一个列表。然后你可以直接赋值:

data_set = {'fruits': {}}
data_set['fruits']['apple'] = fruit_state
data_set['fruits']['strawberry'] = fruit_state
data_set['fruits']['lemon'] = fruit_state

推荐阅读