在Python中,可以使用递归函数遍历一个类似JSON的对象。下面是一个示例代码:
def traverse_json(obj, path=''):
if isinstance(obj, dict):
for key, value in obj.items():
if isinstance(value, (dict, list)):
traverse_json(value, f'{path}.{key}')
else:
print(f'{path}.{key}: {value}')
elif isinstance(obj, list):
for index, value in enumerate(obj):
if isinstance(value, (dict, list)):
traverse_json(value, f'{path}[{index}]')
else:
print(f'{path}[{index}]: {value}')
else:
print(f'{path}: {obj}')
使用示例:
json_obj = {
"name": "John Doe",
"age": 30,
"address": {
"street": "123 Main St",
"city": "New York"
},
"friends": [
{
"name": "Alice",
"age": 28
},
{
"name": "Bob",
"age": 32
}
]
}
traverse_json(json_obj)
输出结果:
.name: John Doe
.age: 30
.address.street: 123 Main St
.address.city: New York
.friends[0].name: Alice
.friends[0].age: 28
.friends[1].name: Bob
.friends[1].age: 32
这段代码会遍历JSON对象中的每个键值对,并输出其路径和对应的值。如果值是字典或列表类型,会递归调用traverse_json
函数继续遍历。输出结果中的路径使用.
表示字典中的键,使用[]
表示列表中的索引。