解决Python查询Mysql数据库信息乱码问题
今天尝试着用 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数据库信息乱码问题的更多相关文章
- 解决Python向MySQL数据库插入中文数据时出现乱码
解决Python向MySQL数据库插入中文数据时出现乱码 先在MySQL命令行中输入如下语句查看结果: 只要character_set_client character_set_database ch ...
- 解决Python查询Mysql中文乱码问题
前段时间,自己瞎动手用Django写了一个更新zip包和sql到远程服务器的工具.但Python从Mysql中读取出来的中文字符会乱码,如下图: 解决办法:Python连接Mysql时指定charse ...
- 解决navicate 连接mysql数据库中文乱码的问题
以下均是ubuntu12.04为准 1.修改mysql的配置文件. 1.1.vi /etc/mysql/my.conf找到[client]在其下面添加 default-character-set=u ...
- 解决WampServer中MySQL数据库中文乱码的问题
原文地址:http://blog.csdn.net/qq756703833/article/details/37971057 左键点击托盘区的WampServer图标,选择MySQL--my.ini, ...
- MySQL中 如何查询表名中包含某字段的表 ,查询MySql数据库架构信息:数据库,表,表字段
--查询tablename 数据库中 以"_copy" 结尾的表 select table_name from information_schema.tables where ta ...
- Python与Mysql 数据库的连接,以及查询。
python与mysql数据库的连接: pymysql是python中对数据库的连接模块:因此应当首先安装pymysql数据库模块. 执行pip install pymysql 命令. 然后在pyth ...
- Django 连接mysql数据库中文乱码
Django 连接mysql数据库中文乱码 2018年08月25日 20:55:15 可乐乐乐乐乐 阅读数:566 版本:CentOS6.8 python3.6.4 django1.8.2 数据库 ...
- python使用mysql数据库
一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...
- python专题-Mysql数据库(python2._+ Mysqldb)
Python使用MySQL数据库 MySQLdb驱动从2014年1月停止了维护. Python2 MySQLdb 一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安 ...
随机推荐
- 罗技k380在iOS下无法输入英文引号
本来打算用iPad远程控制电脑主机进行编程的,但是在键盘回来之后开始试着用的时候发现没法输入英文状态的引号. 各种更换输入法都没有用.没有英文引号还写个锤子的代码. 解决办法:设置-通用-键盘,然后将 ...
- robot framework 笔记(四),使用时遇到的问题
背景: 使用rf遇到的一些问题汇总 一:跑WEBUI的时候报错: [ WARN ] Keyword 'Capture Page Screenshot' could not be run on fail ...
- django-用户中心订单页面
提交订单页面place_order.html,创建订单成功后跳转到用户订单页面 {% block bottomfiles %} <script type="text/javascrip ...
- 四.python基础数据类型
一.什么是数据类型? 什么是数据类型? 我们人类可以很容易的分清数字与字符的区别,但是计算机并不能呀,计算机虽然很强大,但从某种角度上看又很傻,除非你明确的告诉它,1是数字,“汉”是文字,否则它是分不 ...
- LeetCode 457. Circular Array Loop
原题链接在这里:https://leetcode.com/problems/circular-array-loop/ 题目: You are given a circular array nums o ...
- yolov1详细讲解
前言 当我们谈起计算机视觉时,首先想到的就是图像分类,没错,图像分类是计算机视觉最基本的任务之一,但是在图像分类的基础上,还有更复杂和有意思的任务,如目标检测,物体定位,图像分割等,见图1所示.其中目 ...
- window对象方法(open和close)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Kapitan 通用terraform&& kubernetes 配置管理工具
Kapitan 是一个通用的配置管理工具,可以帮助我们管理terraform .kubernetes 以及其他的配置. Kapitan 自生基于jsonnet 开发,对于我们日常进行软件的部署(tf以 ...
- 检查cgroup v2 是否安装
cgroup 当前包含了v1, 以及v2 版本,v2 版本相比v1 在目录组织上更加清晰,管理更加方便,很多 时候我们可能需要检查我们安装的内核当前内核版本是否支持cgroup v2 文章内容来自 h ...
- AGC028 E - High Elements
AGC028 E - High Elements 有一个排列\(p\),你要分成两个子序列\(A,B\),满足\(A,B\)的LIS长度相等.设\(S\)是一个\(01\)序列,\(S_i=0\)当且 ...