【问题标题】:UnicodeEncodeError in Python with pymysql for .fetchall()Python中的UnicodeEncodeError与pymysql for .fetchall()
【发布时间】:2015-02-12 01:53:05
【问题描述】:

我正在尝试制作一个脚本来显示我的数据库,共有 8 列,并且都使用 utf8_unicode_ci。

这是脚本:

import sys

import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='root', db='rfid')

cur = conn.cursor()

cur.execute("SELECT * FROM cnf1")

for r in cur.fetchall():
   print(r)

cur.close()
conn.close()

但是在运行脚本时,控制台会抛出以下错误:

(1, 'camilo', 'camilo', 'camilo', 'camilo', 'camilo', 'camilo', 'camilo')
(2, 'Juan', 'Perez', 'Sanchez', '112223330', 'Las Almendras 111', 'juan.perez@correo.com', '12AAA')
(3, 'a', 'a', 'a', 'a', 'a', 'a', 'a')
(4, 'camilo1', 'camilo1', 'camilo1', 'camilo1', 'camilo1', 'camilo1', 'camilo1')
Traceback (most recent call last):
  File "/Users/camilonunezfernandez/Desktop/prueba2.py", line 11, in <module>
(5, 'camilo1', 'camilo1', 'camilo1', 'camilo1', 'camilo1', 'camilo1', 'camilo1')
(6, 'camilo1', 'camilo1', 'camilo1', 'camilo1', 'camilo1', 'camilo1', 'camilo1')
    print(r)
UnicodeEncodeError: 'ascii' codec can't encode character '\xf1' in position 5: ordinal not in range(128)
[Finished in 0.4s with exit code 1]
[cmd: ['python3', '-u', '/Users/camilonunezfernandez/Desktop/prueba2.py']]
[dir: /Users/camilonunezfernandez/Desktop]
[path: /usr/bin:/bin:/usr/sbin:/sbin]

我正在使用 Python 3.4 版,它运行“pymysql”库以连接到我的 MySQL 数据库。

他们知道这个错误可能会发生吗? 非常感谢!

【问题讨论】:

    标签: mysql python-3.x pymysql


    【解决方案1】:

    尝试传递字符集参数

    conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='root', db='rfid', charset='utf8')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-17
      • 1970-01-01
      • 2018-05-18
      • 2018-08-10
      • 1970-01-01
      • 1970-01-01
      • 2017-06-05
      • 1970-01-01
      相关资源
      最近更新 更多