Python遍历json数据

2023-02-27 00:00:00 python 数据 遍历

遍历 JSON 对象可以使用 Python 内置的 json 模块中的 json.loads() 方法将 JSON 字符串转换为 Python 字典,然后使用字典的遍历方式进行遍历。以下是一个示例代码:

import json

# 定义 JSON 字符串
json_str = '{"name": "John", "age": 30, "city": "New York"}'

# 将 JSON 字符串转换为 Python 字典
json_dict = json.loads(json_str)

# 遍历 Python 字典
for key, value in json_dict.items():
    print(key, value)

在上面的示例中,我们定义了一个 JSON 字符串,并使用 json.loads() 方法将其转换为 Python 字典。然后,我们使用字典的 items() 方法获取字典的键值对,并使用 for 循环遍历字典的键值对。

如果 JSON 对象的层级比较深,可以使用递归方式进行遍历。例如,对于以下 JSON 对象:

{
    "name": "John",
    "age": 30,
    "address": {
        "city": "New York",
        "state": "NY"
    },
    "phones": [
        {
            "type": "home",
            "number": "555-555-1234"
        },
        {
            "type": "work",
            "number": "555-555-5678"
        }
    ]
}

可以使用以下代码进行遍历:

def traverse(obj):
    if isinstance(obj, dict):
        for key, value in obj.items():
            print(key)
            traverse(value)
    elif isinstance(obj, list):
        for item in obj:
            traverse(item)
    else:
        print(obj)

# 定义 JSON 字符串
json_str = '{"name": "John", "age": 30, "address": {"city": "New York", "state": "NY"}, "phones": [{"type": "home", "number": "555-555-1234"}, {"type": "work", "number": "555-555-5678"}]}'

# 将 JSON 字符串转换为 Python 对象
json_obj = json.loads(json_str)

# 遍历 Python 对象
traverse(json_obj)

在上面的示例中,我们定义了一个 traverse() 函数,它使用递归方式遍历 Python 对象。如果遍历到字典或列表,则递归调用 traverse() 函数。如果遍历到其他类型的对象,则直接打印对象的值。然后,我们使用 json.loads() 方法将 JSON 字符串转换为 Python 对象,并使用 traverse() 函数遍历 Python 对象。

相关文章