知识分享-带有字符串和浮点数的 Python CSV 格式并写入

本文介绍了如何处理Python CSV文件中包含字符串和浮点数的情况,特别是如何将浮点数格式化为具有2位小数的形式。在尝试将数据(包括字符串和浮点数)写入csv文件时,遇到浮点数精度问题,原代码导致了错误。解决方案包括迭代列表仅解析浮点值进行格式化,或者使用Python内置的`round()`函数来实现.

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如何使用混合数据类型将浮点数格式化为 2 个小数点?我正在获取一个表并将行写入 csv 文件。我的数据是(字符串,字符串,浮点数,浮点数,浮点数...)

    sql = 'select * from testTable'
    c.execute(sql)

    columnNames = list(map(lambda x: x[0], c.description))
    result = c.fetchall()

    with open(outputCSVPath, 'wb') as f:
        writer = csv.writer(f)
        writer.writerow(columnNames)
        writer.writerows(result)

使用上面的代码,我得到了小数点后 6 位的浮点数。我需要将它格式化为 2 个小数位,但由于列表的前 2 个是字符串,它给了我一个类型错误。

谢谢你。


您可以迭代结果以仅解析浮点值,然后您可以使用writer.writerows(row)逐行写入。看看这里,了解迭代您的results.

另一方面,您可以使用round()python 中的函数将浮点数格式化为两位小数。

一个例子:

>>> # Each of your rows should be something like:
>>> list = ["string1", "string3", 1.435654, 4.43256]

>>> #Round the floats
>>> parsed_list = [round(x, 2) if i > 1 else x for i, x in enumerate(list)]

>>> print parsed_list
['string1', 'string2', 1.44, 4.43]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值