python字典中无值

python字典中无值,python,if-statement,dictionary,nonetype,Python,If Statement,Dictionary,Nonetype,是否可以检查dict中的none值 dict = {'a':'None','b':'12345','c':'None'} 我的代码 for k,v in d.items(): if d[k] != None: print "good" else: print "Bad 执行上述代码段后打印三个好的 good good good 必需:如果值为None,则表示dict键a和c不适合打印。您的None值实际上是字典中的字符串 您可以检查“无” 或者使用实际的pytho

是否可以检查dict中的none值

dict = {'a':'None','b':'12345','c':'None'}
我的代码

for k,v in d.items():
  if d[k] != None:
    print "good"
  else:
    print "Bad 
执行上述代码段后打印三个好的

good
good
good

必需:如果值为None,则表示dict键a和c不适合打印。

您的None值实际上是字典中的字符串

您可以检查“无” 或者使用实际的python值

打印“好”2次

或者,如果您必须使用当前的词典,只需更改您的检查以查找
'None'


此外,dict是python内置类型,因此最好不要命名变量
dict

使用

d = {'a': None}
而不是

d = {'a': 'None'}
在后一种情况下,
'None'
只是一个字符串,而不是Python的
None
类型。此外,使用标识运算符
测试
None

for key, value in d.iteritems():
    if value is None:
        print "None found!" 
您可以简单地使用

如果不是值:
打印“未找到!”

如果值有一些数据,“if value”将为true,如果没有数据,“if value”将为false。因此,在if条件中不必显式使用None关键字

def none_in_dict(d):
    for _, value in d.items():
        if value is None:
            return True
    return False
其用途是:

if none_in_dict(my_dict):
    logger.error(my_err_msg)

对于单例
None
,最好的检查方法是
x is None
x is not None
。代码不应该像o.p的示例代码那样,对非无值输出“good”,对无值输出“bad”吗?当然:-)但这里的想法是要有一个通用函数,因此,只需根据需要修改用法:如果不是“我的字典中没有”等。。。
if none_in_dict(my_dict):
    logger.error(my_err_msg)