在解析 JSON 数据时,可以使用以下方法来判断 JSON 中的子项是一个 JSON 对象还是一个值:

  1. 使用 json.loads() 方法将 JSON 字符串转换为 Python 对象,然后使用 type() 函数来判断对象的类型。
import json

json_str = '{"name": "John", "age": 30, "address": {"city": "New York", "state": "NY"}}'
json_obj = json.loads(json_str)

for key, value in json_obj.items():
    if isinstance(value, dict):
        print(f"{key} is a JSON object")
    else:
        print(f"{key} is a value")
  1. 使用 json.JSONDecoder() 类的 object_hook 参数来指定一个回调函数,该函数会在解析 JSON 对象时被调用,并且可以检查每个子项的类型。
import json

def check_type(obj):
    for key, value in obj.items():
        if isinstance(value, dict):
            print(f"{key} is a JSON object")
        else:
            print(f"{key} is a value")
    return obj

json_str = '{"name": "John", "age": 30, "address": {"city": "New York", "state": "NY"}}'
json_obj = json.loads(json_str, object_hook=check_type)

无论哪种方法,都可以检查 JSON 数据中的子项类型并采取相应的操作。

ESP32 JSON 解析: 如何判断子项是 JSON 对象还是值

原文地址: https://www.cveoy.top/t/topic/fZeI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录