[英]How to search for all occurences of a key in a deeply nested json file?
我希望能够使用它拥有的键之一在 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 的新手。
如果我理解正确,您想递归地遍历嵌套的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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.