python爬虫存储数据库1366, "Incorrect string value: '\\xE6\\x88\\x91\\xE5\\xB8\\x82...' for column 'title' at row 1"错误怎么办
时间: 2023-09-02 21:13:58 浏览: 303
这个错误通常是因为数据库的字符集不支持存储某些特殊字符,比如中文等非 ASCII 字符。
解决这个问题的方法有两种:
1. 修改数据库的字符集
可以将数据库的字符集修改为支持存储非 ASCII 字符的字符集,比如 utf8mb4。可以使用以下语句来修改数据库的字符集:
```sql
ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
```
其中,`database_name` 是数据库名称。
2. 在插入数据时进行编码转换
如果不想修改数据库的字符集,可以在插入数据时将数据进行编码转换。比如,将获取到的数据使用 `encode` 方法转换为 utf8 编码:
```python
data = {
"title": "我市举行庆祝新中国成立70周年文艺晚会"
}
utf8_title = data["title"].encode("utf-8")
```
然后将转换后的数据插入到数据库中。
另外,如果使用的是 MySQL 数据库,在创建表时需要将字符集设置为 utf8mb4。可以使用以下语句来创建表:
```sql
CREATE TABLE table_name (
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
);
```
其中,`table_name` 是表名称,`title` 是要存储的字段名称。注意,需要将 `CHARACTER SET` 和 `COLLATE` 设置为 utf8mb4 和 utf8mb4_unicode_ci。
阅读全文