Duplicate entry '0' for key 'PRIMARY'

来源:14-12 获取和解析详情页 - 1

weixin_慕斯卡4281563

2020-05-20

看到 7-11 节 13:10时 运行

C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\cursors.py:170: Warning: (1364, "Field 'id' doesn't have a default value")
  result = self._query(query)
C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\cursors.py:170: Warning: (1364, "Field 'title' doesn't have a default value")
  result = self._query(query)
C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\cursors.py:170: Warning: (1364, "Field 'author' doesn't have a default value")
  result = self._query(query)
C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\cursors.py:170: Warning: (1364, "Field 'create_time' doesn't have a default value")
  result = self._query(query)
C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\cursors.py:170: Warning: (1364, "Field 'status' doesn't have a default value")
  result = self._query(query)
C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\cursors.py:170: Warning: (1364, "Field 'last_answer_time' doesn't have a default value")
  result = self._query(query)
Traceback (most recent call last):
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\peewee.py", line 3099, in execute_sql
    cursor.execute(sql, params or ())
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\cursors.py", line 170, in execute
    result = self._query(query)
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\cursors.py", line 328, in _query
    conn.query(q)
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\connections.py", line 517, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\connections.py", line 732, in _read_query_result
    result.read()
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\connections.py", line 1075, in read
    first_packet = self.connection._read_packet()
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\connections.py", line 684, in _read_packet
    packet.check_error()
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\protocol.py", line 220, in check_error
    err.raise_mysql_exception(self._data)
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\err.py", line 109, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.IntegrityError: (1062, "Duplicate entry '0' for key 'PRIMARY'")

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/WenLiang/Desktop/spider/csdn_spider/spider.py", line 145, in <module>
    parse_list(url)
  File "C:/Users/WenLiang/Desktop/spider/csdn_spider/spider.py", line 131, in parse_list
    topic.save(force_insert=True)  # 插入
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\peewee.py", line 6499, in save
    pk = self.insert(**field_dict).execute()
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\peewee.py", line 1886, in inner
    return method(self, database, *args, **kwargs)
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\peewee.py", line 1957, in execute
    return self._execute(database)
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\peewee.py", line 2707, in _execute
    return super(Insert, self)._execute(database)
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\peewee.py", line 2442, in _execute
    cursor = database.execute(self)
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\peewee.py", line 3112, in execute
    return self.execute_sql(sql, params, commit=commit)
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\peewee.py", line 3106, in execute_sql
    self.commit()
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\peewee.py", line 2873, in __exit__
    reraise(new_type, new_type(exc_value, *exc_args), traceback)
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\peewee.py", line 183, in reraise
    raise value.with_traceback(tb)
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\peewee.py", line 3099, in execute_sql
    cursor.execute(sql, params or ())
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\cursors.py", line 170, in execute
    result = self._query(query)
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\cursors.py", line 328, in _query
    conn.query(q)
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\connections.py", line 517, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\connections.py", line 732, in _read_query_result
    result.read()
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\connections.py", line 1075, in read
    first_packet = self.connection._read_packet()
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\connections.py", line 684, in _read_packet
    packet.check_error()
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\protocol.py", line 220, in check_error
    err.raise_mysql_exception(self._data)
  File "C:\Users\WenLiang\Envs\spider\lib\site-packages\pymysql\err.py", line 109, in raise_mysql_exception
    raise errorclass(errno, errval)
peewee.IntegrityError: (1062, "Duplicate entry '0' for key 'PRIMARY'")

Process finished with exit code 1

写回答

1回答

bobby

2020-05-22

这个意思是说主键冲突,也就是主键为0的这个数据已经插入过了

1
2
bobby
回复
weixin_慕斯卡4281563
课程后面会讲解到冲突的解决方法的
2020-07-30
共2条回复

Python爬虫工程师实战 大数据时代必备

慕课网严选精品教程,高质量内容+服务!

2381 学习 · 1158 问题

查看课程