python - 为什么 python 在使用 csv.writer 和 QUOTE_NONNUMERIC 时会崩溃
问题描述
当我使用在 python 3.7 中创建一个 csv 文件时csv.writer
,csv.QUOTE_NONNUMERIC
python 崩溃并显示消息
python: Objects/typeobject.c:3117: _PyType_Lookup: Assertion `!PyErr_Occurred()' failed.
Aborted (core dumped)
这发生在 python 3.7.4 和 3.7.3 但不是 3.6.9。如果我不通过就不会发生csv.QUOTE_NONUMERIC
。
所有版本的 python 都是在 Linux Mint 19 上同时编译的。
由于我在网上找不到对此问题的任何引用,我认为这不是 python 或 csv 中的错误。似乎我在编译 python 时丢失了一个依赖项,但是我从来没有能够提交完整的依赖项列表,所以我不确定我可能会丢失什么。
重现步骤:
import csv
with open('tmp.csv', 'w') as f:
csv.writer(f, csv.QUOTE_NONNUMERIC)
解决方案
引用应该作为关键字而不是位置参数传递给 csv.writer。
import csv
with open('tmp.csv', 'w') as f:
csv.writer(f, quoting=csv.QUOTE_NONNUMERIC)
否则,它被传递给dialect
参数,该参数需要一个字符串,该字符串用于选择csv.Dialect
用于格式化输出的子类。正如我相信它csv.QUOTE_NONNUMERIC
被int
传递给 c 模块 _csv 中的函数并导致低级错误。
推荐阅读
- wordpress - 在同一页面上的 wodrpess 中使用两个循环:第一个应该是“内置”静态页面,第二个应该是自定义参数
- elasticsearch - 属于时间过滤器的文档数占 Kibana 索引模式中文档总数的百分比
- verilog - Questasim - 是否可以在新设计上记录和重新加载信号?
- pgadmin-4 - 带有 SSH 隧道的 pgadmin4:导入不起作用
- python-3.x - 如何在不迭代每列的情况下将数据框附加到列顺序更改的 csv 文件中?
- r - 浮点数子集和问题的递归函数
- python - 使用 python 导出 Excel 到 PDF:获取拆分图
- oracle - Oracle SQL:如何从结果中删除重复的员工 ID?
- bash - 为什么 ERR 陷阱不适用于非零值的双与号 (&&) 退出中的命令
- sapui5 - 捕获智能表个性化确定按钮的事件