首页 > 解决方案 > 使用 jsonpath 在 Python 中更新 json 节点

问题描述

我正在尝试根据 jsonpath 表达式修改 json 数据:

{
    "SchemeId": 10,
    "nominations": [
        {
            "nominationId": 1
        }
    ]
}

使用类似的东西

from jsonpath_ng import jsonpath, parse
jsonpath_expr = parse('$.SchemeId')
jsonpath_expr.find(data)
updated_json = jsonpath_expr.update(data, 'schemeId': 11)

我想更新该SchemeId值,这应该可以使用https://github.com/h2non/jsonpath-ng,但是没有示例。有没有办法做到这一点?

标签: pythonjsonjsonpath

解决方案


我想通了,所以我可以在这里分享。update() 方法更改值。

from jsonpath_ng import jsonpath, parse
import json
data = json.loads('''{"SchemeId": 10, "nominations": [ { "nominationId": 1 } ] }''')
jsonpath_expr = parse('$.SchemeId')
jsonpath_expr.find(data)
jsonpath_expr.update(data, 11)
print(json.dumps(data, indent=2))

推荐阅读