def getValue(d, key):
for k, v in d.iteritems():
print "{0} == {1}".format(k, key)
if k == key:
return v
elif isinstance(v, dict):
getValue(v, key)
logging.error("Cannot find key in dictionary")
return ""
#d = getting the dictionary
getValue(d, "error_frames")
Run Code Online (Sandbox Code Playgroud)
从我在函数中插入的print语句中,我清楚地看到控制台中出现"error_frames == error_frames",但if语句没有被执行.为什么?通过使用模块xmltodict解析xml来构造字典.
eum*_*iro 12
.format调用__str__对象的方法,其输出对于不同的对象可以是相同的.
In [1]: a = 1
In [2]: b = '1'
In [3]: print '{0} == {1}'.format(a, b)
1 == 1
In [4]: a == b
Out[4]: False
Run Code Online (Sandbox Code Playgroud)
也许print语句是从嵌套递归调用执行的.
elif isinstance(v, dict):
getValue(v, key)
Run Code Online (Sandbox Code Playgroud)
应该是return getValue(key)吗?
| 归档时间: |
|
| 查看次数: |
259 次 |
| 最近记录: |