TypeError: expected string or bytes-like object Django问题

骑猪看日落 2022-12-20 03:30 268阅读 0赞

错误来源

在使用Django对数据做保存、更新时,突然出现了这个这个错误:

  1. TypeError: expected string or bytes-like object

但是仔细查看代码,只是常规的获取对象、更新字段的操作,并没有很复杂的逻辑。

问题定位与解决

经过查阅,python类的思路是正则匹配出现了问题:数据类型不匹配。
从终端输出的异常也可以看出:

  1. ...
  2. parsed = parse_datetime(value)
  3. match = datetime_re.match(value)
  4. TypeError: expected string or bytes-like object

于是一步步定位,终于发现在给datetime类型的数据赋值时,最后莫名其妙加了一个逗号,这就造成了本身应该是str类型的数据,结果变成了一个tuple,因此赋值也就失败了。

因此对于这类问题,虽然python是弱类型的,但是对于已经指定类型的数据(例如Django中的model),还需要保持左右数据类型的一致。

发表评论

表情:
评论列表 (有 0 条评论,268人围观)

还没有评论,来说两句吧...

相关阅读