今天尝试着用 Python 写了个脚本试着连接 mysql 数据库,并查询里边的数据,不过最终查询结果中文字符变成了ascii格式。

代码如下:

#!/usr/bin/python
#encoding=utf-8 import MySQLdb
import json db = MySQLdb.connect(host='xxx.xxx.xx.xxx',port=3306,user='name',passwd='pwd',db='my_database_name')
cursor = db.cursor()
sql = "select * from platform_temp"
aa=cursor.execute(sql)
info = cursor.fetchmany(aa)
for i in info:
print i
db.close()

  

查询结果如下:

针对上述出现的问题,对编辑器Pycharm的环境都进行了设置为utf-8格式,但是结果还都如上图所示。

最后通过查询本地window控制台字节码格式,为ascii,如下图所示:

In[5]: import sys
In[6]: print(sys.getdefaultencoding())
ascii

  

再次对上述代码进行修改,结果还是如此,代码如下:

#!/usr/bin/python
#encoding=utf-8 import MySQLdb
import json db = MySQLdb.connect(host='xxx.xxx.xxx.xxx',port=3306,user='name',passwd='pwd',db='my_database_name')
cursor = db.cursor()
sql = "select * from platform_temp"
aa=cursor.execute(sql)
info = cursor.fetchmany(aa)
for i in info:
print str(i).encode('utf-8')
print str(i).decode('utf-8')
print str(i).decode('utf-8').encode('utf-8')
db.close()

  

最后通过尝试将  json  模块导入,利用其 dumps 方法,问题得到解决,代码如下图所示:

#!/usr/bin/python
#encoding=utf-8 import MySQLdb
import json db = MySQLdb.connect(host='xxx.xxx.xxx.xxx',port=3306,user='name',passwd='pwd',db='my_database_name')
cursor = db.cursor()
sql = "select * from platform_temp"
aa=cursor.execute(sql)
info = cursor.fetchmany(aa)
for i in info:
# print str(i).encode('utf-8')
# print str(i).decode('utf-8')
# print str(i).decode('utf-8').encode('utf-8')
print json.dumps(i, encoding='UTF-8', ensure_ascii=False)

  

查询结果如下所示:

问题解决,结束。

实例配置:

    def get_one(self):
#准备sql
sql = 'SELECT * FROM `news` WHERE `types` = %s ORDER BY `created_at` DESC;'
# 找到cursor
cursor = self.conn.cursor()
cursor.execute('SET NAMES UTF8')
# 执行sql
cursor.execute(sql, ('百家', ))
# 拿到结果
rest = cursor.fetchmany()
for r in rest:
print json.dumps(r, encoding='UTF-8', ensure_ascii=False)
# 处理数据
cursor.close()
self.close_conn()

  

[root@centos-01 python]# python test001.py
[2, "男子长得像\"祁同伟\"挨打 打人者:为何加害检察官", "新闻内容", "百家", "/static/img/news/02.png", null, 0, null, 1]

  python3 可以用 pymysql 连接数据库 , 没有中文乱码的问题

解决Python查询Mysql数据库信息乱码问题的更多相关文章

  1. 解决Python向MySQL数据库插入中文数据时出现乱码

    解决Python向MySQL数据库插入中文数据时出现乱码 先在MySQL命令行中输入如下语句查看结果: 只要character_set_client character_set_database ch ...

  2. 解决Python查询Mysql中文乱码问题

    前段时间,自己瞎动手用Django写了一个更新zip包和sql到远程服务器的工具.但Python从Mysql中读取出来的中文字符会乱码,如下图: 解决办法:Python连接Mysql时指定charse ...

  3. 解决navicate 连接mysql数据库中文乱码的问题

    以下均是ubuntu12.04为准 1.修改mysql的配置文件. 1.1.vi  /etc/mysql/my.conf找到[client]在其下面添加 default-character-set=u ...

  4. 解决WampServer中MySQL数据库中文乱码的问题

    原文地址:http://blog.csdn.net/qq756703833/article/details/37971057 左键点击托盘区的WampServer图标,选择MySQL--my.ini, ...

  5. MySQL中 如何查询表名中包含某字段的表 ,查询MySql数据库架构信息:数据库,表,表字段

    --查询tablename 数据库中 以"_copy" 结尾的表 select table_name from information_schema.tables where ta ...

  6. Python与Mysql 数据库的连接,以及查询。

    python与mysql数据库的连接: pymysql是python中对数据库的连接模块:因此应当首先安装pymysql数据库模块. 执行pip install pymysql 命令. 然后在pyth ...

  7. Django 连接mysql数据库中文乱码

    Django 连接mysql数据库中文乱码 2018年08月25日 20:55:15 可乐乐乐乐乐 阅读数:566   版本:CentOS6.8 python3.6.4 django1.8.2 数据库 ...

  8. python使用mysql数据库

    一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...

  9. python专题-Mysql数据库(python2._+ Mysqldb)

    Python使用MySQL数据库 MySQLdb驱动从2014年1月停止了维护. Python2 MySQLdb 一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安 ...

随机推荐

  1. Caused by: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): com.qingmu.seller.entity.OrderMaster

    org.springframework.orm.jpa.JpaSystemException: ids for this class must be manually assigned before ...

  2. pycharm——常用快捷键操作

    编辑类(Editing): Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + Alt + Space 类名完成Ctrl + Shift + Enter 语句完成Ctrl + P ...

  3. if语句的嵌套:从键盘输入3个实数,利用条件表达式求其最大者。

    #include<stdio.h>void main(){ float a,b,c,max; scanf("%f%f%f",&a,&b,&c); ...

  4. 注册服务到etcd中

    如上存放一些服务的key到etcd中,商品有两个,主要是为了负载均衡的key func NewService() *Service { config := clientv3.Config{ Endpo ...

  5. 查看.NET应用程序中的异常(上)

    内存转储是查明托管.NET应用程序中异常的原因的一种极好的方法,特别是在生产应用程序中发生异常时.当您在无法使用Visual Studio的应用程序中跟踪异常时,cdb和sos.dll的使用技术就变成 ...

  6. AD域服务器组策略实现文件夹重定向 保护文件安全

     网络管理员或许都遇到过类似的烦恼.如系统崩溃后,原来存放在 C盘的应用程序专署数据都丢失了;或者桌面上的文件莫名其妙少了,等等.有时候,我们也千方百计提醒员工不要把文件存放在桌面上,但是他们总是不听 ...

  7. [Gradle] 解决高德 jar 包打包到 aar 后 jar 包中的 assets 内容丢失

    问题描述 将高德 SDK 的 jar 包放到 android library project libs 目录下,发布为 aar 包后,发现高德 jar 包中的 assets 目录下的内容不见了 原因见 ...

  8. e3s10 网络管理

    1. host上设置 iptables -t nat -A POSTROUTING -o eno1 -j MASQUERADE # https://www.unixtutorial.org/how-t ...

  9. 手把手教你用Python代码实现微信聊天机器人 -- Python wxpy

    关注我,每天都有优质技术文章推送,工作,学习累了的时候放松一下自己. 本篇文章同步微信公众号 欢迎大家关注我的微信公众号:「醉翁猫咪」 来学习了,微信聊天机器人. 环境要求: Windows / Li ...

  10. C博客作业

    1.你对网络专业或者计算机专业了解是怎样? 信息化是国企的一个大趋势,目前正是红火的时候. - 网络是信息化必不可少的的基础和平台,随着信息化的进步,网络也必将水涨船高. - 我认为网络方向主要学的是 ...