检查元素是否为列表或其他对象

时间:2015-01-21 10:23:43

标签: python

我有一个包含名为“companies”的元素的对象。 该元素可以是对象列表,也可以只是一个对象(不包含在列表中)。

我想浏览所有公司,但如果元素“公司”只是一个项目(未包含在列表中),则此示例将失败:

for company in companies:

我试过在for循环之前测试,例如:

if type(companies['company']) is list:
    # do your thing

但也失败了。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:9)

首先,这是构建数据的一种非常可怕的方式,你应该向创造它的人抱怨。如果一个项目可以是一个列表,它应该始终是一个列表,即使该列表只包含一个元素。

但是,您展示的代码应该有效 - 尽管更好的方法是if isinstance(companies['company'], list)。如果仍然无效,您需要显示数据以及使用它的确切代码。

答案 1 :(得分:0)

您可以从非列表中创建一个列表,以便无条件地使用“for ... in ...”。

companies = list(companies)
for company in companies:
    # use "company" in some way