思路
- 首先,使用
json
库将JSON字符串解析为Python的字典或列表对象。
- 由于数据结构是多层嵌套的,需要编写一个递归函数来遍历整个数据结构。
- 在递归函数中,对于字典类型,检查键值对是否符合条件,如果符合则记录下来。然后对字典的每个值(可能是列表或字典)继续递归调用。
- 对于列表类型,遍历列表中的每个元素(可能是列表或字典),继续递归调用。
- 这里不适合直接使用正则表达式,因为JSON数据结构遍历更适合用递归方式处理键值对,而不是通过正则表达式匹配。
关键代码片段
import json
def extract_key_value(json_obj, target_key):
results = []
def traverse(obj):
if isinstance(obj, dict):
for key, value in obj.items():
if key == target_key:
results.append((key, value))
traverse(value)
elif isinstance(obj, list):
for item in obj:
traverse(item)
traverse(json_obj)
return results
# 示例使用
json_str = '{"a": 1, "b": [{"c": 2, "target_key": "value1"}, {"d": 3, "target_key": "value2"}]}'
json_obj = json.loads(json_str)
target_key = "target_key"
print(extract_key_value(json_obj, target_key))