- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
当使用 Python 的 csv 在 Python 数据结构和 csv 表示之间来回切换时,我想区分
模块。None
和空字符串 (''
)
我的问题是当我运行时:
import csv, cStringIO
data = [['NULL/None value',None],
['empty string','']]
f = cStringIO.StringIO()
csv.writer(f).writerows(data)
f = cStringIO.StringIO(f.getvalue())
data2 = [e for e in csv.reader(f)]
print "input : ", data
print "output: ", data2
我得到以下输出:
input : [['NULL/None value', None], ['empty string', '']]
output: [['NULL/None value', ''], ['empty string', '']]
当然,我可以使用 data
和 data2
来区分 None
和空字符串,例如:
data = [d if d!=None else 'None' for d in data]
data2 = [d if d!='None' else None for d in data2]
但这会部分破坏我对 csv
模块的兴趣(用 C 实现的快速反序列化/序列化,特别是在处理大型列表时)。
是否有 csv.Dialect
或 csv.writer
和 csv.reader
的参数可以让他们区分 ''
和 None
在这个用例中?
如果没有,是否有兴趣对 csv.writer
实现补丁以启用这种来回操作? (可能是 Dialect.None_translate_to
参数默认为 ''
以确保向后兼容。)
最佳答案
The documentation暗示你想要的东西是不可能的:
To make it as easy as possible to interface with modules which implement the DB API, the value None is written as the empty string.
这在 writer
类的文档中,表明它适用于所有方言,并且是 csv 模块的固有限制。
我支持更改这一点(以及 csv 模块的各种其他限制),但人们可能希望将此类工作卸载到不同的库中,并保持 CSV 模块简单(或在至少尽可能简单)。
如果您需要更强大的文件读取功能,您可能希望查看 numpy、scipy 和 pandas 中的 CSV 读取功能,我记得它们有更多选择。
关于python - 无和空字符串的 CSV 阅读器行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11379300/
我会保持简短:我正在尝试循环遍历画廊的 xml 文档。我有一个应该可以工作的脚本,但没有。谁能告诉我哪里做错了? 我不想让它变得更长,因为问题很简单,并且从昨天开始就一直在思考这个问题,这是我得到的最
我正在使用 PHPExcel从 Excel 工作表中读取数据并存储在 mysql 表中,直到现在我能够上传 .xls 和 .xlsx 文件,在上传 xls 后我得到了下面的数据表结构 name
我正在构建一个在线 Rss 阅读器。我希望能够与文章标题和描述一起显示图像。 我正在使用谷歌提要 API 从 CNN ( http://rss.cnn.com/rss/edition.rss ) 读取
关闭。这个问题是off-topic .它目前不接受答案。 想改善这个问题吗? Update the question所以它是 on-topic对于堆栈溢出。 10年前关闭。 Improve this
我正在开发 BB 应用程序,我需要在其中实现 QR 阅读器或扫描仪。我知道 RIM 在 OS6 和 ZXing 中支持它的库,但实际上我需要阅读一个示例,说明如何在我的代码中实现它。 最佳答案 你可以
我将工作应用程序的 clojurescript 版本升级到 0.0-2030,突然读取器/读取字符串返回空值,例如: (js/alert (str "reader returned [" (read
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我想编写一个小应用程序,可以从任何 RSS 提要 URL 中提取 RSS 提要。如果有人能给我关于如何实现这一目标的非常基本的帮助? 我刚刚开始接触 AJAX 之类的东西,所以任何帮助将不胜感激。 谢
我已经创建了一个 RSS 阅读器,如下教程所示: http://techiedreams.com/android-rss-reader-part-3-action-bar-with-animated-
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 4 年前。
请帮我解决这个问题。我是 extJs 的新手,我需要一点帮助。我有这个代码 Ext.onReady(function() { var datesStore = new Ext.data.JsonSt
我需要一个 CSV 读取器,它将输出 NxN(加权)邻接矩阵(N 从一开始就不知道)。当然,我可以使用 strtok() 和 friend 来解析它,但是如果某些东西已经可用并且足够完整,我将不胜感激
实际上我想开发一个 EPUB 格式的图书列表(列表将从网络服务中检索)。 当选择一个项目(一本书)时,它应该会提示手机中安装了可用的 epub 阅读器。类似于“分享”将调用 SMS、FB、Twitte
我是 Java 的新手,但真的想在这方面做得更好。我正在尝试编写一个简单的 RSS 阅读器。这是代码: import java.io.*; import java.net.*; public clas
我按照一个简单的教程 (http://www.cse.nd.edu/courses/cse40814/www/RSS_Android.pdf) 将给定 URL 中的 RSS 提要读取到 ListVie
最近我一直在尝试学习如何在 Xcode 6 beta 中制作 RSS 阅读器应用程序的教程,尽管我使用的是 Xcode 6.1。我遇到了一行似乎是错误的。 完整代码为: import UIKit cl
代码使用条形码扫描仪检查条形码。Search_code 由用户(键盘)填写,insert_code 由条码扫描仪自动填写。目前,如果在条形码扫描仪值中引入两个输入,则代码可以工作,这对我来说不起作用。
是否可以通过编程方式更改 Windows 中的默认 PDF 阅读器。 例如, 如果我的机器中的默认阅读器是“Foxit”,但我需要在 C# 或 javascript 中将默认阅读器应用程序更改为“Ad
我想将 CSV 文件的每一行与其自身以及一列中的每一行进行比较。 例如,如果列值是这样的: 值_1 值_2 值_3 代码应该选择 Value_1 并将其与 Value_1(是的,也与它本身)、Valu
我有以下片段 import csv data = {} with open('data.csv', 'rb') as csvfile: spamreader = csv.reader(csvf
我是一名优秀的程序员,十分优秀!