python - 使用 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,但是没有示例。有没有办法做到这一点?
解决方案
我想通了,所以我可以在这里分享。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))
推荐阅读
- sql - 从 B 表中查询没有所有正确行的左连接
- apache-spark - apache spark中列中所有值的“或”
- java - 如果我没有将变量分配给返回值的函数会发生什么
- shell - shell命令行运行脚本N次
- javascript - 'var webApp = { .. }' 和 'var webApp = function (){ .. }' 有什么区别
- c# - 在循环中更新某些文本值
- amazon-web-services - 如何使用 Line API + AWS 获取用户发送的图像
- java - 这种调用的名称是什么“variable.methodName(data);” ?
- mongodb - 动态汇总所有文档键
- javascript - jQuery 在 Ajax 请求中发送 NaN 而不是整数