Python 如何解析JSON并确定值是集合还是嵌套集合?
我正在寻找不同的方法来检查JSON中的值 例如,要检查该值是否为:Python 如何解析JSON并确定值是集合还是嵌套集合?,python,json,Python,Json,我正在寻找不同的方法来检查JSON中的值 例如,要检查该值是否为: int-isinstance(值,int) 字符串-isinstance(值,str) 数组-isinstance(值、列表) 但是,检查值是list、dict还是字典列表的最干净方法是什么?如何正确区分它们 例子 vs vs 要递归搜索JSON数据结构,并处理项目是列表或字典等集合的情况,可以执行以下操作 示例:递归搜索JSON密钥 另外,一定要利用标准库包。JSON编码和解码的主要功能有: 另见 如果您所
- int-
isinstance(值,int)
- 字符串-
isinstance(值,str)
- 数组-
isinstance(值、列表)
list
、dict
还是字典列表的最干净方法是什么?如何正确区分它们
例子
vs
vs
要递归搜索JSON数据结构,并处理项目是列表或字典等集合的情况,可以执行以下操作 示例:递归搜索JSON密钥 另外,一定要利用标准库包。JSON编码和解码的主要功能有:
从goodjson.validators导入gj_all、foreach、is_list、is_string
验证\u fn=gj\u所有(
is_list(),
foreach(is_字符串)
)
验证\u fn(['a','b','c']))
是dict
从goodjson.validators导入foreach\u密钥,是\u dict
验证\u fn=foreach\u键(测试=[is\u dict])
验证({
“测试”:{
“是吗?”:“是”
}
})
是目录列表
从goodjson.validators导入foreach\u键、foreach、is\u dict、is\u列表
验证\u fn=foreach\u键(
试验=[
is_list(),
foreach(是dict)
]
)
验证({
'test':[{'foo':'bar'}]
})
@ChristopherPeisert无法100%确定这与我的要求有何关联。
{
"test": ["a","b"]
}
{
"test": {"a":0, "b":1}
}
{
"test": [
{"a":0},
{"b":1}
]
}
def find_key(json_input, lookup_key):
if isinstance(json_input, dict):
for k, v in json_input.items():
if k == lookup_key:
yield v
else:
yield from find_key(v, lookup_key)
elif isinstance(json_input, list):
for item in json_input:
yield from find_key(item, lookup_key)