以下是一个解决方法,用Python实现了遍历具有嵌套结构的JSON的代码示例:
import json
def traverse_json(data, path=''):
if isinstance(data, dict):
for key, value in data.items():
new_path = path + '/' + key
if isinstance(value, (dict, list)):
traverse_json(value, new_path)
else:
print(f'{new_path}: {value}')
elif isinstance(data, list):
for index, value in enumerate(data):
new_path = path + '/' + str(index)
if isinstance(value, (dict, list)):
traverse_json(value, new_path)
else:
print(f'{new_path}: {value}')
# 示例JSON数据
json_data = '''
{
"name": "John",
"age": 30,
"address": {
"street": "123 Main St",
"city": "New York",
"zip": "10001"
},
"phones": [
{
"type": "home",
"number": "555-1234"
},
{
"type": "work",
"number": "555-5678"
}
]
}
'''
# 将JSON数据解析为Python对象
data = json.loads(json_data)
# 遍历JSON数据
traverse_json(data)
上述代码中,traverse_json()
函数用于遍历具有嵌套结构的JSON数据。它接受两个参数:data
是要遍历的JSON数据,path
是当前遍历路径(用于显示每个值的路径)。
在函数中,我们首先判断data
的类型。如果是字典类型,则使用items()
方法遍历字典的键和值。对于字典值,如果是字典或列表类型,则递归调用traverse_json()
函数继续遍历。否则,打印该值及其路径。
如果data
是列表类型,则使用enumerate()
函数遍历列表的索引和值。对于列表值,如果是字典或列表类型,则递归调用traverse_json()
函数继续遍历。否则,打印该值及其路径。
最后,我们将示例JSON数据解析为Python对象,并调用traverse_json()
函数进行遍历。输出结果将显示每个值及其对应的路径。
上一篇:遍历具有列表值的字典
下一篇:遍历具有任意数量分支的树