0

我通过以下方式获得两个包含整数值的字符串。我已经尝试了所有选项,但结果总是 False。

    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 。我可以对此发表一些意见吗?

4

2 回答 2

1

element.layer是一个int,不是一个string。这就是为什么repr(string1)会返回7而不是'7'。你应该试试

string1` = str(element.layer)

同时请注意,您不应__dict__直接通过符号访问对象属性,而应使用.符号。

于 2013-01-01T14:12:34.373 回答
0

根据我在评论流中看到的

您能否将 print repr(string1), repr(temp_string2) 添加到您的代码中以向我们展示变量包含的内容?

我得到了 7 和“7”。我将如何解决这个问题。为什么会有这种差异。我明白在这两种情况下它都是字符串

很明显,您正在将整数与字符串进行比较。

if print repr(string1), 返回7print repr(temp_string2)返回"7"then string1,即

string1    = element.__dict__.get('layer')

应该是一个整数

所以你必须在比较之前转换string1integer

if str(string1) == temp_string2:
     print "data found"

或从字典中检索值后将其转换为字符串

string1 = str(element.__dict__.get('layer'))

奇怪的是,它是访问 dict 的 get 方法的一种非常非常规的方式,而不是您可以简单地使用.符号进行成员引用

string1    = element.get('layer')
于 2013-01-01T14:13:43.797 回答