Python:根据提供的路径改变json数据(如jsonpath)。

1 人关注

我需要一个工具,用一些任意的函数来修改json数据,只适用于以某种语法(例如jsonpath,但也可以是其他的)表达的特定路径。主要功能是 修改现有的数据结构 ,而不是只提取部分内容,然后再进行修改。 是否有像我描述的那样的东西?

例如,我们得到了输入数据。

"users": [ "group": "Admins", "name": "John Smith" "group": "Users", "name": "James Taylor" "groups": [ "Admins", "Users" ]

而我想去掉用户的姓氏。因此,我需要将类似 lambda x: x.split(' ')[0] 到jsonpath中,如 【替换代码2

因此,我想得到

"users": [ "group": "Admins", "name": "John" "group": "Users", "name": "James" "groups": [ "Admins", "Users" ]

这是一个非常简单的例子,输入数据和路径表达可能更加复杂

python
json
jsonpath
Anton M.
Anton M.
发布于 2021-10-10
1 个回答
Anton M.
Anton M.
发布于 2021-10-11
已采纳
0 人赞同

I've found the solution using json路-ng .

from jsonpath_ng import parse
input_data = json.load(file_with_json)
path = '$.users..name'
findings = parse(path).find(input_data)
for finding in findings: