我希望能够使用其中的一个键在json文件中找到所有特定json对象。例如,如果我有以下json块:
{
"FNMIP": 1,
"FNMIT": 0,
"FNMP": {
"DP": {
"DT": 0,
"UF": true,
"DF": "yyyyMMdd"
},
"FP": {
"FE": null
}
},
"IE": true,
"$": "PMF"
}
我想搜索包含此密钥的所有json块,然后应用某种逻辑将其替换为另一个json对象。我无法弄清楚如何在Python中做这些事情,因为我不熟悉Python。
答案 0 :(得分:1)
如果我理解正确,您希望以递归方式遍历嵌套dict
,并且对于与特定值匹配的任何值,请将其替换为其他值。这样做:
def recursive_replace(data,match,repl):
for k,v in data.items():
if v == match:
data[k] = repl #replace the matched value
elif isinstance(v,dict):
recursive_replace(v,match,repl)
然后你可以将数据转换回json。
而是测试数据中是否存在"$"
密钥,您可以使用in
运算符:
def recursive_replace(data,repl):
for k,v in data.items():
if not isinstance(v,dict):
continue
elif "$" in v:
data[k] = repl
else:
recursive_replace(v,repl)