我有一个查询,它返回一个Viewobject,其中包含我想要处理的所有条目。我知道我可以迭代这个视图对象,这样我就可以将单个条目用于我的目的。
现在我想只提取第一行和最后一行。第一行没有问题,因为我可以在第一项之后迭代并打破循环。
现在我的问题是,如何从视图中获取最后一个元素。
我试过:
for row in result_rows:
rowvalue = row[3].value
diagdata = rowvalue[models.DIAGDATA]
if models.ODOMETER in diagdata:
start_mileage = diagdata[models.ODOMETER]
start_mileage_found = True
break
row = result_rows[len(result_rows)]
rowvalue = row[3].value
diagdata = rowvalue[models.DIAGDATA]
if models.ODOMETER in diagdata:
end_mileage = diagdata[models.ODOMETER]
end_mileage_found = True
第二个值我显然不会得到,因为视图既没有长度也不能通过索引访问行。有谁知道如何获得最后一个元素?
答案 0 :(得分:1)
您可以使用descending=True
选项运行另一个请求,以便服务器以相反的顺序传输结果。
或者您可以将迭代器转换为基本相同的数组,迭代所有值。我不是蟒蛇专家,但似乎list(result_rows)
会为你做这件事。当你正在做len(...)
时,它可能会隐含地为你做这件事。有rows_returned
方法可以获取行数而无需将其列入列表。