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

use*_*829 3 python

我有一个包含名为"companies"的元素的对象.此元素可以是对象列表,也可以只是单个对象(不包含在列表中).

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

for company in companies:
Run Code Online (Sandbox Code Playgroud)

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

if type(companies['company']) is list:
    # do your thing
Run Code Online (Sandbox Code Playgroud)

但那也失败了.

有人可以帮忙吗?

Dan*_*man 9

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

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