CSV转JSON时布尔类型转换错误如何用Python标准库修复
布尔字段转换解决方案
Python 内置的bool()构造函数仅会将空字符串判定为False,所有非空字符串都会返回True,因此无法直接用来转换字符串格式的布尔值。
你可以直接通过字符串匹配完成转换,同时兼容大小写、前后空格的异常输入场景,修改对应字段的赋值代码即可:
# 原错误代码(还缺失右括号):d[headers[16]] = bool(reader_row[16] # 修改后代码: d[headers[16]] = reader_row[16].strip().lower() == 'true'
上述代码逻辑:
- 先用
strip()清除字符串前后的多余空格、换行符 - 用
lower()统一转为小写,兼容True/TRUE/true等多种写法 - 直接和标准值
'true'做相等判断,匹配返回True,其余所有情况返回False
如果需要处理空值、不合法值的自定义返回逻辑,可以扩展为条件判断:
retired_val = reader_row[16].strip().lower() if retired_val == 'true': d[headers[16]] = True elif retired_val == 'false': d[headers[16]] = False else: # 空值或者其他非法值可以按需求设置为None或者False d[headers[16]] = None
内容的提问来源于stack exchange,提问作者Derya
相关产品推荐
相关产品推荐

