gpt4 book ai didi

Python CSV 模块 - 引号丢失

转载 作者:太空狗 更新时间:2023-10-30 00:51:41 26 4
gpt4 key购买 nike

我有一个包含这样数据的 CSV 文件

15,"I",2,41301888,"BYRNESS RAW","","BYRNESS VILLAGE","NORTHUMBERLAND","ENG"
11,"I",3,41350101,2,2935,2,2008-01-09,1,8,0,2003-02-01,,2009-12-22,2003-02-11,377016.00,601912.00,377105.00,602354.00,10

我正在阅读此内容,然后将不同的行写入不同的 CSV 文件。

但是,在原始数据中,非数字字段周围有引号,因为其中一些字段中包含逗号。

我无法保留引号。

我研究了很多并发现了 quoting=csv.QUOTE_NONNUMERIC 但是现在这导致每个字段周围都有一个引号,我不知道为什么?

如果我尝试其他引用选项之一,如 MINIMAL,我最终会收到一条关于日期值 2008-01-09 不是 float 的错误消息。

我尝试创建一种方言,在 csv 读取器和写入器上添加引号,但我没有尝试过与原始数据完全匹配的结果。

任何人都遇到过同样的问题并找到了解决方案。

最佳答案

在写作时,quoting=csv.QUOTE_NONNUMERIC 保持不加引号的值,只要它们是数字,即。如果它们的类型是 intfloat(例如),这意味着它会写出您期望的内容。

您的问题可能是,在读取时,csv.reader 会将其读取的每一行转换为 stringslist(如果如果您足够仔细地阅读文档,您会发现阅读器不会执行自动数据类型转换!

如果您阅读后不执行任何类型的转换,那么当您编写时,您最终会得到引号中的所有内容...因为您编写的所有内容都是一个字符串。

编辑:当然,日期字段将被引用,因为它们不是 数字,这意味着您无法使用标准 csv.writer 获得准确的预期行为。

关于Python CSV 模块 - 引号丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9353792/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com