pythoncsv数据类型_python – 从csv-file读取数据并转换为正确的数据类型

这篇博客探讨了如何从CSV文件中读取数据并将其转换为正确的数据类型,包括字符串、整数、浮点数和列表。作者指出Python的CSV模块不进行自动转换,建议使用`ast.literal_eval()`函数。提供了代码示例,展示如何读取CSV文件,并将数据转换为字典,同时处理布尔值、空值和列表等数据类型。
摘要由CSDN通过智能技术生成

我有以下问题.我写了一个二维列表,其中每列具有不同的类型(bool,str,int,list),到csv文件.

现在我想再次从csv文件中读出数据.但我读到的每个单元都被解释为一个字符串.

如何自动将读入数据转换为正确的类型?或者更好:是否有可能告诉csv-reader每列的正确数据类型?

示例数据(如csv文件中):

IsActive,Type,Price,States

True,Cellphone,34,"[1, 2]"

,FlatTv,3.5,[2]

False,Screen,100.23,"[5, 1]"

True,Notebook, 50,[1]

解决方法:

作为docs explain,CSV读取器不执行自动数据转换.您有QUOTE_NONNUMERIC格式选项,但这只会将所有非引用字段转换为浮点数.这与其他csv读者非常相似.

我不相信Python的csv模块对这种情况有任何帮助.正如其他人已经指出的那样,literal_eval()是一个更好的选择.

以下工作和转换:

>字符串

> int

>漂浮

>列表

>字典

您也可以将它用于布尔值和NoneType,尽管必须相应地格式化它们才能传递literal_eval(). LibreOffice Calc以大写字母显示布尔值,而在Python布尔值为大写时.此外,您必须用空(无引号)替换空字符串

我正在为mongodb写一个进口商来做这一切.以下是我到目前为止编写的代码的一部分.

[注意:我的csv使用tab作为字段分隔符.您可能还想添加一些异常处理]

def getFieldnames(csvFile):

"""

Read the first row and store

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值