TypeError: expected string or bytes-like object Django问题
错误来源
在使用Django对数据做保存、更新时,突然出现了这个这个错误:
TypeError: expected string or bytes-like object
但是仔细查看代码,只是常规的获取对象、更新字段的操作,并没有很复杂的逻辑。
问题定位与解决
经过查阅,python类的思路是正则匹配出现了问题:数据类型不匹配。
从终端输出的异常也可以看出:
...
parsed = parse_datetime(value)
match = datetime_re.match(value)
TypeError: expected string or bytes-like object
于是一步步定位,终于发现在给datetime类型的数据赋值时,最后莫名其妙加了一个逗号,这就造成了本身应该是str类型的数据,结果变成了一个tuple,因此赋值也就失败了。
因此对于这类问题,虽然python是弱类型的,但是对于已经指定类型的数据(例如Django中的model),还需要保持左右数据类型的一致。
还没有评论,来说两句吧...