<p>我有一个从SQLite数据库检索数据的方法。数据保存为文本(出于某种原因),但实际上它是浮点数(14.5等)。这是我获取它们的方法:</p>
<pre><code>def retrieveSpeeds(databasepath, someid):
con = lite.connect(databasepath)
with con:
cur = con.execute("SELECT speed FROM speeds WHERE id = someid")
speeds = [x[0] for x in cur]
return speeds
</code></pre>
<p>这将返回以下内容:</p>
<pre><code>[u'14.00', u'14.50', u'14.50', u'14.50', u'14.50', u'13.80']
</code></pre>
<p>但是,因为我想要普通数字,所以我需要:</p>
<pre><code>for i in range(0, len(speed)):
newspeeds.append(float(speed[i]))
</code></pre>
<p>因此,现在新的回报如下所示:</p>
<pre><code>[14.0, 14.5, 14.5, 14.5, 14.5, 13.8]
</code></pre>
<p>因此,我主要是:</p>
<pre><code>maxspeeds = []
for id in userid:
speed = retrieveSpeeds(databasepath, id)
if len(speed>0):
maxspeeds.append(max(speed))
for i in range(0,len(maxspeeds)):
if maxspeeds[i] > 40:
maxspeeds = maxspeeds.pop(i)
</code></pre>
<p>这给了我以下类型的错误:</p>
<pre><code> Traceback (most recent call last):
if len(speed>0):
TypeError: object of type 'bool' has no len()
</code></pre>
<p>布尔?我非常困惑,为什么我返回的列表现在是一个bool</p>