要按照四级深度的字段筛选JSON数据集,可以使用递归的方法来遍历JSON数据并筛选出符合条件的字段。以下是一个示例代码:
def filter_json_by_depth(json_data, target_depth, current_depth=1):
filtered_data = []
if isinstance(json_data, dict):
for key, value in json_data.items():
if current_depth == target_depth:
filtered_data.append({key: value})
else:
filtered_data.extend(filter_json_by_depth(value, target_depth, current_depth + 1))
elif isinstance(json_data, list):
for item in json_data:
filtered_data.extend(filter_json_by_depth(item, target_depth, current_depth))
return filtered_data
# 示例 JSON 数据
json_data = {
"key1": {
"key2": {
"key3": "value3",
"key4": "value4"
},
"key5": {
"key6": "value6",
"key7": "value7"
}
},
"key8": {
"key9": {
"key10": "value10",
"key11": "value11"
},
"key12": {
"key13": "value13",
"key14": "value14"
}
}
}
# 按照四级深度筛选字段
filtered_json = filter_json_by_depth(json_data, 4)
print(filtered_json)
运行以上代码,将输出在四级深度的字段。在上述示例中,输出结果为:
[{'key3': 'value3'}, {'key4': 'value4'}, {'key6': 'value6'}, {'key7': 'value7'}, {'key10': 'value10'}, {'key11': 'value11'}, {'key13': 'value13'}, {'key14': 'value14'}]
该示例代码中的 filter_json_by_depth
函数接受三个参数:json_data
为要筛选的JSON数据,target_depth
为目标深度,current_depth
为当前深度(默认为1)。函数使用递归方式遍历JSON数据,如果当前深度等于目标深度,则将该字段添加到结果列表中,否则继续遍历下一层字段。最后返回筛选结果列表。