首页 > 解决方案 > Django 模型有一个意外的关键参数

问题描述

我想将爬取数据保存到数据库中,但它有意外的关键字参数错误。

reviewData() got an unexpected keyword argument 'reviewText'

crawling.py的某些部分

for j in range(review_cnt):
    if soup.select_one(f'li:nth-child({j+1}) > div._1Z_GL > div.PVBo8 > a > span') != None:
        if(len(soup.select(f'li:nth-child({j+1}) > div._1Z_GL > div.PVBo8 > a > span'))) == 2:
            driver.find_element_by_css_selector(f'li:nth-child({j+1}) > div._1Z_GL > div.PVBo8 > a').send_keys(Keys.ENTER) 
            current_page = driver.page_source
            soup = BeautifulSoup(current_page, 'html.parser')  
            time.sleep(1)                                         
            review_text = soup.select_one(f'li:nth-child({j+1}) > div._1Z_GL > div.PVBo8 > a > span').text.strip() #텍스트 추출 
            star_rate = soup.select_one(f'li:nth-child({j+1}) > div._1Z_GL > div._1ZcDn > div._3D_HC > span._2tObC').text
            review_data.append((place_name, review_text, star_rate))
            review_obj = {
                'place' : place_name,
                'review' : review_text,
                'rate' : star_rate
                }
                review_dict.append(review_obj)
for item in review_dict:
  reviewData(placeName = item['place'], reviewText = item['review'], starRate = item['rate']).save() #this line has error

模型.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
    

我不知道在哪里修复。我应该添加更多内容吗?

标签: pythondjangodjango-models

解决方案


也许是因为你忘记了括号

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()

推荐阅读