功能';hasattr()';不';在Python中,它不能像我预期的那样工作
函数“hasattr()”在Python中无法正常工作 我有以下代码:功能';hasattr()';不';在Python中,它不能像我预期的那样工作,python,dictionary,hasattr,Python,Dictionary,Hasattr,函数“hasattr()”在Python中无法正常工作 我有以下代码: #!/usr/bin/python import re import os import sys results=[{'data': {}, 'name': 'site1'}, {'data': {u'Brazil': '5/1', u'Panama': '2000/1'}, 'name': 'site2'}] print results[1] if hasattr(results[1]['data'], u'Brazi
#!/usr/bin/python
import re
import os
import sys
results=[{'data': {}, 'name': 'site1'}, {'data': {u'Brazil': '5/1', u'Panama': '2000/1'}, 'name': 'site2'}]
print results[1]
if hasattr(results[1]['data'], u'Brazil'):
print 'has'
else:
print 'hasn\'t'
当我运行它时,它会给我输出:还没有
我不知道如何检查该属性是否存在。
我试图在巴西之前删除
u
,但没有成功。如何解决它?hasattr(..)检查对象是否具有具有给定名称的属性。但是,正如条件所说,没有
somedict.basicu
您可以使用中的检查字典中某个键的成员身份,如:
if u'Brazil' in results[1]['data']:
print 'has'
else:
print 'hasn\'t'
如果结果[1]['data']中有u'Brazil':
打印“has”
其他:
打印“尚未”
注意,这只检查字典中是否有与给定键相等的键(u'Brazil'
),它不检查值,例如,对于值,您可以在结果[1]['data'].values()中使用'5/1'。请注意,搜索键通常在O(1)中完成,而搜索值将在O(n)中运行。hasattr(…)
检查对象是否具有具有给定名称的属性。但是,正如条件所说,没有somedict.basicu
您可以使用
中的检查字典中某个键的成员身份,如:
if u'Brazil' in results[1]['data']:
print 'has'
else:
print 'hasn\'t'
如果结果[1]['data']中有u'Brazil':
打印“has”
其他:
打印“尚未”
注意,这只检查字典中是否有与给定键相等的键(u'Brazil'
),它不检查值,例如,对于值,您可以在结果[1]['data'].values()中使用'5/1'。请注意,搜索键通常在O(1)中完成,而搜索值将在O(n)中运行。hasattr
对属性进行操作,而不是对字典键进行操作-如果您可以使用点符号访问它(如data.basicu
),则hasattr
将返回True
,否则它将返回False
——在这种情况下,它将返回False
在
中使用:
if u'Brazil' in results[1]['data']:
hasattr
对属性进行操作,而不是对字典键进行操作-如果您可以使用点符号访问它(如data.basicu
),则hasattr
将返回True
,否则它将返回False
——在这种情况下,它将返回False
在
中使用:
if u'Brazil' in results[1]['data']:
这不是一个属性,您可以使用结果[1]['data']
中的“巴西”来检查字典/集合中某个键的成员身份。也许标题应该是“hasattr用于什么?”因为它完全按照预期工作,尽管您的预期可能有所不同。@SethMMorton:edited这不是一个属性,您可以使用结果[1]['data']
中的“巴西”来检查字典/集合中某个键的成员身份。也许标题应该是“hasattr的用途是什么?”因为它完全按照预期工作,尽管您的预期可能有所不同。@SethMMorton:edited