AttributeError:“NoneType”对象没有使用 pymysql 的属性“encoding”

0 python-3.x pymysql

import pymysql\n\nconn = pymysql.connect(host=\'127.0.0.1\', port=3306, user=\'root\',\n    passwd=\'123456\',db=\'home\', charset="utf-8")\n\ncursor = conn.cursor()\ncursor.execute("""create table job_list(job varchar(30) , people varchar(30) , catagory varchar(30)  , place varchar(30), publish varchar(30)) """)\n\ntry:\n    cursor.execute("""INSERT  INTO  job_list(job,people,catagory,place,publish) VALUES (%s, %s, %s, %s, %s)""",\n        ["\xe7\xae\x97\xe6\xb3\x95\xe5\xb7\xa5\xe7\xa8\x8b\xe5\xb8\x88", "2018\xe6\xaf\x95\xe4\xb8\x9a\xe7\x94\x9f", "\xe7\xa0\x94\xe5\x8f\x91", "\xe9\x9b\x85\xe5\x8a\xa0\xe8\xbe\xbe", "2018-03-28"])\n    conn.commit()\nexcept pymysql.Error as e:\n    print(e)\n\ncursor.close()\nconn.close()\n
Run Code Online (Sandbox Code Playgroud)\n\n

设置了字符集但没有用,如何将中文插入mysql

\n

tde*_*ney 6

charset是mysql数据库字符集名称,需要转换为python编码。在charset.pypymysql中有一个很大的列表。相反,pymysql 要么返回您传入的字符集名称,要么引发您看到的不明显的错误。在世界范围内,“utf8”是有效的字符集,但“utf-8”不是。因此,只需将您的连接更改为pymysql

conn = pymysql.connect(host='127.0.0.1', port=3306, user='root',
    passwd='123456',db='home', charset="utf8")
Run Code Online (Sandbox Code Playgroud)