我以下列方式获得两个包含整数值的字符串。我已经尝试了所有选项,但结果总是得到假。
string1 = element.__dict__.get('layer') # '7'
temp_string2,temp_string3=temp_key.split(':') # temp_key = '7:12'
if string1 == temp_string2:
print "data found"
虽然两者都包含相同的值,但我没有得到True。我可以就此提出一些意见吗?
答案 0 :(得分:1)
element.layer
是int
,不是string
。这就是repr(string1)
返回7
而不是'7'
的原因。你应该试试
string1` = str(element.layer)
请注意,您不应直接通过__dict__
访问对象属性,而应使用.
表示法。
答案 1 :(得分:0)
基于我在评论流中看到的内容
您可以将print repr(string1),repr(temp_string2)添加到您的代码中 告诉我们变量包含什么?
我得到7和'7'。我将如何解决这个问题。为什么这种不同。我 了解到它在两种情况下都是字符串
很明显,您正在将整数与字符串进行比较。
如果print repr(string1)
,则返回7
,print repr(temp_string2)
返回"7"
,然后返回string1
,这是
string1 = element.__dict__.get('layer')
应该是一个整数
因此,您必须在比较之前将string1
转换为integer
if str(string1) == temp_string2:
print "data found"
或从字典
中检索值后将其转换为字符串string1 = str(element.__dict__.get('layer'))
奇怪的是,它是一种非常规的方式来访问dict的get方法,相反,您可以简单地使用.
符号来引用成员
string1 = element.get('layer')