如何识别数组是否为对象数组 python

How to identify if array is array of object python

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

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

列表理解将遍历列表并为每个值创建一个布尔值的新列表。布尔值取决于元素的类型。 然后,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>],它是这样工作的:Data Structures - List Comprehensions

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