尝试扩展列表时,“十进制”对象不可迭代

J·多伊

我有以下 -

db = mariadb.connect(host=host,
                     user=someuser,
                     passwd=somepass)

cursor = db.cursor(mariadb.cursors.DictCursor)

#Get the top 5 largest tables inside of the database
cursor.execute('SELECT table_schema as `Database`, table_name AS `Table`, round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`  FROM information_schema.TABLES  ORDER BY (data_length + index_length) DESC LIMIT 5;')
data = cursor.fetchall()

for item in data:
   dbsize.extend(float(item['Size in MB']))

这给了我以下错误 -

'Decimal' object is not iterable

如果我只是打印它们(而不是将它们添加到列表中),它会打印出正确的值。如何获得此代码以成功将每个项目添加到此列表中?我尝试将它们更改为浮点数,但得到了同样的错误。

谢谢。

毗湿奴·乌帕迪亚

您需要使用append而不是extend. 看:

L.extend(iterable) -> None -- 通过添加可迭代元素来扩展列表

a = []
In [131]: from decimal import Decimal

In [132]: f = Decimal(23.12)

In [133]: f
Out[133]: Decimal('23.120000000000000994759830064140260219573974609375')

In [134]: a.extend(f)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-134-13e0f548b372> in <module>()
----> 1 a.extend(f)

TypeError: 'decimal.Decimal' object is not iterable

In [135]: a.append(f)

In [136]: a
Out[136]: [Decimal('23.120000000000000994759830064140260219573974609375')]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

迭代列表时,“方法”对象不可迭代

舍入十进制列表

TypeError:“ float”对象在尝试注释列表中的箭头时不可迭代

尝试过滤列表时,我得到TypeError:'NoneType'对象不可迭代

类型错误:尝试使用素数列表时,int 对象不可迭代

扩展ASCII字符的十进制值

尝试创建扩展方法以将字符串转换为十进制

生成十进制下拉列表

SSMS - 尝试批量插入到表中,但十进制字段有时包含 NA

尝试将十进制数字解析为Int时,TryParse不起作用

尝试从SQL将十进制值转换为double时,无效的操作异常

尝试打印十进制数时的程序集“分段错误”

sed时的十进制转换

解析十进制时发生异常

乘法时的十进制小故障

尝试分配循环索引时,“ int”对象不可迭代

TypeError: 'ModelBase' 对象在尝试使用排除时不可迭代

除 BigDecimal 值时出错:java.lang.ArithmeticException:非终止十进制扩展;没有精确的可表示的十进制结果

使用Java 8在对象列表中除以十进制值?

更新DecimalField上的“从列表或元组创建十进制时无效的元组大小”

在for循环python中迭代整数和十进制值

将不可显示的ASCII数组转换为十进制

如何检查输入的十进制值是否大于十进制列表

使用Arange在十进制值列表中查找十进制值有麻烦

使用列表时,python 中的 Int 对象不可迭代 TypeError

如何将ndarray对象列表中的二进制值转换为十进制值?

从十进制转换成十进制?有时返回null而不是0

生成Expression.Assign设置十进制时发生异常?从十进制

对十进制值求和时,awk总和中需要全十进制