这个错误是由于在插入数据时,数据中包含非ASCII字符,而数据库的字符集不支持这些字符导致的。

要解决这个问题,可以尝试以下几种方法:

  1. 检查数据库的字符集设置,确保它支持存储非ASCII字符。可以使用如下命令查看当前数据库的字符集设置:

    SHOW VARIABLES LIKE 'character_set_database';
    

    如果字符集不正确,可以使用如下命令修改字符集设置:

    ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    
  2. 在连接数据库时,指定正确的字符集。可以在连接数据库时,添加charset='utf8mb4'参数来指定字符集,例如:

    conn = pymysql.connect(host='localhost', user='your_user', password='your_password', db='your_database', charset='utf8mb4')
    
  3. 对于非ASCII字符,可以尝试使用适当的编码方式进行转换。例如,可以使用encode('utf-8')对字符串进行编码,然后再插入到数据库中:

    cur.executemany("insert into test3(`序号`, `链接`, `标题`, `时间`) values(%s, %s, %s, %s)", (i[0], i[1], i[2].encode('utf-8'), i[3]))
    

请注意,如果使用第3种方法进行编码转换,读取数据时也需要进行相应的解码操作。

希望以上解决方案能够帮助您解决问题

data = dict_create for i in data curexecutemanyinsert into test3序号 链接 标题 时间 valuess s s si为什么上述代码显示1366 Incorrect string value xE5xADxA6xE6xA0xA1 for column 标题 at row 1

原文地址: http://www.cveoy.top/t/topic/hSdf 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录