Python jsonpath-ng : 如何从 json 路径和值构建 json 文档?
Python jsonpath-ng : How to build a json document from jsonpath and values?
在 python 中开发,我想从 json 路径和相应值的列表中创建一个 json 文档(树)。
例如从json路径
"$.orders[0].client"
和一个值“acme”,它将创建:
{'orders':[{'client':'acme'}]}
然后,我应该能够在 json 文档中添加一个新节点,该节点位于另一个具有给定值的 json 路径指定的位置。
例如添加 jsonpath $.orders[0].orderid
和值“123”,这将导致更新 json 文档:
{'orders':[{'client':'acme', 'orderid' : 123}]}
我试图理解 jsonpath-ng 用于该目的,但我不明白我如何将它用于该目的(即使这是可能的也不明白)。
有人可以帮忙吗?
提前致谢,
此致,
洛朗
如果我正确理解你的问题,你是在要求 JSON 到 JSON 转换。 JSONPath 不是正确的工具。为此有专门的库,例如JSONBender。您可以像这样转换一些 JSON:
import json
from jsonbender import bend, K, S
MAPPING = {
'client': S('orders', 0, 'client'),
'orderid': S('orders', 0, 'orderid')
}
source = {
"orders" : [
{
"orderid": 123,
"client" : "acme"
},
{
"orderid": 321,
"client" : "two"
}
]
}
result = bend(MAPPING, source)
print(json.dumps(result))
{"client": "acme", "orderid": 123}
您当然可以进一步弯曲结果,但更简单的输出可能效果更好。
在 python 中开发,我想从 json 路径和相应值的列表中创建一个 json 文档(树)。
例如从json路径
"$.orders[0].client"
和一个值“acme”,它将创建:
{'orders':[{'client':'acme'}]}
然后,我应该能够在 json 文档中添加一个新节点,该节点位于另一个具有给定值的 json 路径指定的位置。
例如添加 jsonpath $.orders[0].orderid
和值“123”,这将导致更新 json 文档:
{'orders':[{'client':'acme', 'orderid' : 123}]}
我试图理解 jsonpath-ng 用于该目的,但我不明白我如何将它用于该目的(即使这是可能的也不明白)。
有人可以帮忙吗?
提前致谢,
此致,
洛朗
如果我正确理解你的问题,你是在要求 JSON 到 JSON 转换。 JSONPath 不是正确的工具。为此有专门的库,例如JSONBender。您可以像这样转换一些 JSON:
import json
from jsonbender import bend, K, S
MAPPING = {
'client': S('orders', 0, 'client'),
'orderid': S('orders', 0, 'orderid')
}
source = {
"orders" : [
{
"orderid": 123,
"client" : "acme"
},
{
"orderid": 321,
"client" : "two"
}
]
}
result = bend(MAPPING, source)
print(json.dumps(result))
{"client": "acme", "orderid": 123}
您当然可以进一步弯曲结果,但更简单的输出可能效果更好。