python mysqldb单行/列返回元组值

时间:2012-03-20 17:45:27

标签: python mysql-python

db_quote_cursor.execute("""select lastince 
                           from `here` 
                           order by `date` desc, `time` desc 
                           limit 1""")
thisout= db_quote_cursor.fetchone()

thisout是一个浮点值。我需要对它进行计算,但不能将它作为浮点数转换为元组。

!work(pleasework=float(thisout[0]))

我尝试将其转换为列表,但也无效。当我不想/需要循环时,如何直接访问元组中的值?或者别的什么......

以下是我从数据库中获取的内容:

print(this out)
# -> ((Decimal('118'),),) 

这就是我得到的错误:

>>> result = float(thisout[0]) 
Traceback (most recent call last): File "file.1.py", line 56, in <module> 
TypeError: float() argument must be a string or a number 

2 个答案:

答案 0 :(得分:1)

现在您已发布回溯的情况更加清晰。谢谢。

您正在找回Decimal个对象 事实上,这比浮动更好。

您无需转换它,可能只是开始计算:

thisout[0] += 1 # works fine

但请注意,您无法做到:

thisout[0] += 1.0 # this is a TypeError

在上述情况下,您可以改为:

import decimal as dc
thisout[0] += dc.Decimal('1.0')

答案 1 :(得分:0)

如果结果只是一个1元组,你可以使用thisout [0]以bernie说(并且你的代码显然尝试)来访问它。我猜你在解析浮点数时遇到了不同的错误;发布堆栈跟踪或异常。