python - 使用 jsonpath-ng 在 Python 中使用上下文更新 json 数据

标签 python json jsonpath jsonpath-ng

正在关注 Update json nodes in Python using jsonpath ,想知道如何在给定特定上下文的情况下更新 JSON 数据。 因此,假设我们选择完全相同的 JSON 示例:

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

但是这一次,想要将原始值的值加倍,因此需要一些 lambda 函数来考虑当前节点值。

最佳答案

不需要 lambda;例如,要加倍 SchemeId,这样的事情应该可行:

data = json.loads("""the json string above""")
jsonpath_expr = parse('$.SchemeId')
jsonpath_expr.find(data)
val = jsonpath_expr.find(data)[0].value
jsonpath_expr.update(data, val*2)
print(json.dumps(data, indent=2))

输出:

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

关于python - 使用 jsonpath-ng 在 Python 中使用上下文更新 json 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63287113/

相关文章:

python - spaCy - 带连字符的单词的标记化

python - 在 Google Cloud Compute 实例启动时启动 python 脚本

python - 从 Python 中的单元素字典中提取键名

php - 来自 Android 的 POST JSON 无法在 PHP 中解码

linux - 在 Linux 中从 JSON 响应中提取 ID

java - Java JsonPath 表达式中的计数器

python - 浮点比较不适用于 pandas groupby 输出

android - Volley StringRequest 响应更改撇号的值(' 更改为 â)

javascript - 针对另一个表达式的 JSONPath 或 JMESPath 过滤