【发布时间】:2017-11-27 19:27:53
【问题描述】:
好吧,我不明白发生了什么。我正在循环查询我的输出。一个非常正常的循环和 if。问题是当我尝试执行 results[o]
for recordset in return_stored_procedure:
results.append(dict(zip(sp_column_names, recordset)))
if results[0]['days_column'] <= 30:
print variable
else:
print variable
***更新*****
解决问题谢谢大家。现在进行了更正,我将从列表中删除我不想要的内容。
for l in sp_results:
if l['column'] < 30:
newlist.append(l)
现在开始进行列表理解。而不是这个循环。
【问题讨论】:
-
好吧,您总是检查
results中的第一项,它在您显示的循环中没有改变,所以没有理由期望检查会改变......跨度> -
另外,如果你说
results[0]是int类型,那么results[0]['days_column']会抛出TypeError,因为int对象不可下标。所以你的问题没有多大意义。我建议你提供一个minimal reproducible example -
@juanpa.arrivillaga 您可以从之前的行中看到,OP 将
dictionary附加到resultslist(我认为):results.append(dict(...))。 -
@JoeIddon 对,我明白了,但这不会改变索引 0 中的内容(可能是第一次迭代除外)。几乎可以肯定这不是 OP 想要的,同样,它与 OP 声称
results[0]是int的说法不一致 -
@juanpa.arrivillaga 啊,是的,我没有考虑第一个
index。
标签: python loops if-statement sap-ase