如何使"int"解析空字符串?

27 浏览
0 Comments

如何使"int"解析空字符串?

我有一个基于布局表的固定长度文本记录解析系统:

parse_table = [\
    ('name', type, length),
    ....
    ('numeric_field', int, 10), # 整数示例
    ('textc_field', str, 100), # 字符串示例
    ...
]

这个系统的思路是根据表中的条目,通过遍历字符串并重新构建字典来解析消息类型的表格。

现在,我可以处理字符串和正常的整数,但int()无法解析全为空格的字段(当然有充分的理由)。

我想通过定义int的子类来处理它,该子类可以处理空字符串。这样,我就可以更改表格条目的类型,而不需要在解析代码中引入额外的修补方法(比如过滤器),它会“自动工作”。

但是我无法弄清楚如何在子类中重写内置类型的构造函数,因为在子类中定义构造函数似乎没有帮助。我感觉我在理解Python内置类型的工作原理方面漏掉了一些基本的东西。

我该如何处理?我也接受不会增加太多复杂性的替代方案。

0