gpt4 book ai didi

python - 如何让 "int"解析空白字符串?

转载 作者:IT老高 更新时间:2023-10-28 20:36:39 29 4
gpt4 key购买 nike

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

parse_table = [\
('name', type, length),
....
('numeric_field', int, 10), # int example
('textc_field', str, 100), # string example
...
]

这个想法是,给定一个消息类型的表,我只需遍历字符串,并根据表中的条目重建一个字典。

现在,我可以处理字符串和正确的整数,但 int() 不会解析全空格字段(当然,这是有充分理由的)。

我想通过定义一个处理空白字符串的 int 子类来处理它。这样我就可以去更改适当的表条目的类型,而无需在解析代码中引入额外的 kludges(如过滤器),它会“正常工作”。

但我不知道如何在子类型中覆盖内置类型的构造函数,因为在子类中定义构造函数似乎没有帮助。我觉得我在这里遗漏了一些关于 Python 内置类型如何工作的基本知识。

我应该如何处理这个问题?我也愿意接受不会增加太多复杂性的替代方案。

最佳答案

使用带有参数s.strip()或0int()函数,即:

int(s.strip() or 0)

或者如果您知道字符串将始终只包含数字字符或为空(""),那么只需:

int(s or 0)

在您的具体情况下,您可以使用 lambda 表达式,例如:

parse_table = [\
....
('numeric_field', lambda s: int(s.strip() or 0), 10), # int example
...
]

关于python - 如何让 "int"解析空白字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2941681/

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