【问题标题】:Check if type is dictionary [duplicate]检查类型是否为字典 [重复]
【发布时间】:2023-04-03 22:38:01
【问题描述】:

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

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

此代码无效

已编辑:

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

【问题讨论】:

  • 使用isinstance --> if isinstance(v, dict):

标签: python dictionary


【解决方案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 提供帮助,如果对您有帮助,请考虑将我的答案标记为已接受:) 还可以考虑阅读stackoverflow.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))
    

    【讨论】:

      猜你喜欢
      • 2013-06-02
      • 2021-01-22
      • 2020-11-17
      • 2017-03-02
      • 2016-09-04
      • 2021-08-03
      • 2021-09-26
      • 1970-01-01
      • 2020-07-20
      相关资源
      最近更新 更多