首页 > 解决方案 > 如何识别数组是否是对象数组python

问题描述

我有 JSON,我想确定它是一个对象数组还是一个字符串数组。我们如何在python中识别它?

arrayA = [{"name", "john", "address": "usa"}, {"name":"adam": "china"}]
arrayB = ["Country", "State"]

标签: pythonpython-3.xpython-2.7

解决方案


列表推导将遍历列表并为每个值创建一个带有布尔值的新列表。布尔值取决于元素的类型。然后,all()将检查序列中的所有元素是否为True.

array_a = [{"name": "john", "address": "usa"},
          {"name": "adam", "address": "china"}]
array_b = ["Country", "State"]
array_c = ["Country", "State", {"name": "adam", "address": "china"}]

print(all(isinstance(elem, str) for elem in array_a))
# False
print(all(isinstance(elem, str) for elem in array_b))
# True
print(all(isinstance(elem, str) for elem in array_c))
# False

如果您不知道这种形式的语句[<expression> for <variable> in <iterable>],它是这样工作的:数据结构 - 列表理解

编辑:感谢 B. Morris 的评论;)


推荐阅读