检查类型是不是为字典 [重复]

Posted

技术标签:

【中文标题】检查类型是不是为字典 [重复]【英文标题】:Check if type is dictionary [duplicate]检查类型是否为字典 [重复] 【发布时间】:2019-10-03 15:59:02 【问题描述】:

如何检查变量是否是python字典?

for k,v in dict.items():
    if type(v)==dict:
        print('This is a dictionary')

此代码无效

已编辑:

解决了。类型(v)正在工作。在我的字典中使用名称“dict”时我犯了错误。

【问题讨论】:

使用isinstance --> if isinstance(v, dict): 【参考方案1】:

首先,永远不要将变量命名为 python 关键字,因此不要使用dict 作为 python 变量名,因为它正在替换 python 内置关键字 dict。而是使用类似my_dict

您应该考虑使用isinstance 来检查变量是否是字典,而不是type

来自type的文档:

建议使用 isinstance() 内置函数来测试对象的类型,因为它考虑了子类。

此外,由于您仅使用值,因此请考虑仅使用 my_dict.values() 对其进行迭代

for v in my_dict.values():
    if isinstance(v, dict):
        print('This is a dictionary')

【讨论】:

感谢 U。当我重命名字典时,代码开始工作。 太棒了!很高兴为@DeepSpace 提供帮助,如果对您有帮助,请考虑将我的答案标记为已接受:) 还可以考虑阅读***.com/help/someone-answers【参考方案2】:

要正确检查v 是否是dict 的实例,您可以使用isinstance

for k,v in your_dict.items():
    if isinstance(v, dict):
        print('This is a dictionary')

注意:将您的变量名称 'dict' 更改为其他名称,因为您正在掩盖内置名称

【讨论】:

【参考方案3】:

最好使用isinstance(object, classinfo)而不是检查type(object) == classinfo

for k,v in dict.items():
    print(isinstance(v, dict))

【讨论】:

以上是关于检查类型是不是为字典 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python检查字典中是不是存在值[重复]

如何检查返回对象是不是是python中的字典[重复]

寻找一种优雅的方法来检查字典中是不是存在密钥[重复]

检查类型是不是为 Nullable 的正确方法 [重复]

如何在jquery中检查输入类型号是不是为空[重复]

如何从字典中检查特定字符串的键[重复]