ESP32 JSON 解析: 如何判断子项是 JSON 对象还是值
在解析 JSON 数据时,可以使用以下方法来判断 JSON 中的子项是一个 JSON 对象还是一个值:
- 使用
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")
- 使用
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 数据中的子项类型并采取相应的操作。
原文地址: https://www.cveoy.top/t/topic/fZeI 著作权归作者所有。请勿转载和采集!