Django存储爬虫数据时报unexpected keyword argument错误如何解决
问题修复方案
错误根因
你的models.py中Django模型类的字段定义没有正确实例化,reviewText、starRate字段仅写了字段类名,没有加实例化括号,导致这两个字段没有被模型注册识别,实例化reviewData时传入对应参数就会被判定为非法关键字参数。
修复步骤
第一步:修正
models.py的字段定义
替换原模型代码为以下内容,给所有字段补全实例化括号:from django.db import models # Create your models here. class reviewData(models.Model): placeName = models.CharField(max_length=50) reviewText = models.TextField() starRate = models.FloatField()第二步:执行数据库迁移同步结构
在项目根目录执行以下两条Django命令,将模型修改同步到数据库:python manage.py makemigrations python manage.py migrate第三步:补充数据类型转换(可选,避免后续报错)
你爬取得到的star_rate是字符串格式,存入Float类型字段前需要做类型转换,修改crawling.py中review_obj的赋值逻辑:review_obj = { 'place' : place_name, 'review' : review_text, 'rate' : float(star_rate) }
内容的提问来源于stack exchange,提问作者JYH
相关产品推荐
相关产品推荐

