是否可以选择更改 csv 和 xlrd 包处理空单元格的默认方式?默认情况下,空单元格被分配一个空字符串值 = ''。当使用数据库时,这是有问题的,因为空字符串不是 None 值,许多与数据库接口的 python 包(例如 SQLAlchemy)可以将其作为Null处理以供数据库使用。
例如,如果在假定为小数/整数/浮点数/双精度的字段中出现空单元格,则数据库将抛出异常,因为对十进制/整数/浮点类型的字段进行了字符串插入/双倍的。
我还没有找到任何示例或文档来说明我如何做到这一点。我目前的方法是检查数据并执行以下操作:
if item[i] == '':
item[i] = None
这样做的问题是我不拥有数据并且无法控制其质量。我可以想象这将是一种常见的情况,因为许多应用程序使用的文件/数据是由它们以外的来源生成的。
如果有办法改变默认处理,那么我认为这将是一个明智的方法。