python mysql 插入数据遇到的问题

近日做了一份实时爬取数据并将数据插入到mysql的事。报错如下

TypeError: %d format: a number is required, not str"

解决方法:也就是MySQLdb的字符串格式化不是标准的python的字符串格式化,应当一直使用%s用于字符串格式化

UnicodeEncodeError: 'latin-1' codec can't encode characters

解决方法:设置charset='utf8mb4'即可。

import pymysql

插入数据:

connection = pymysql.connect(host='127.0.0.1',
                   port=3306,
                    user='root',
                    password='zhyea.com',
                    db='employees',
                    charset='utf8mb4')

try:
    with con.cursor() as cur:
        sql = 'INSERT INTO employees (first_name, last_name, hire_date, gender, birth_date) VALUES (%s, %s, %s, %s, %s)'
        cur.execute(sql,('Robin', 'Zhyea', tomorrow, 'M', date(1989, 6, 14))))
    con.commit()
except Exception as e:
    print(e)
    conn.rollback()
finnally:
    con.close()

执行查询:

Python查询Mysql使用 fetchone() 方法获取单条数据, 使用fetchall() 方法获取多条数据。

  • fetchone(): 该方法获取下一个查询结果集。结果集是一个对象
  • fetchall(): 接收全部的返回结果行.
  • rowcount: 这是一个只读属性,并返回执行execute()方法后影响的行数。

猜你喜欢

转载自blog.csdn.net/kekekeqi/article/details/80430294