首先,python访问数据库并返回信息的代码
import MySQLdb
import json
con= MySQLdb.connect(host='localhost',user='root',passwd='',db='lv_test',charset='utf8')
#使用连接对象获得一个cursor对象,
cursor =con.cursor()
sql ="select * from zhunkaozheng"
#执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
cursor.execute(sql)
#返回一条结果行
#row=cursor.fetchone()
#接收全部的返回结果行.row里保存的将会是查询返回全部结果.每条结果都是一个tuple类型的数据,
row=cursor.fetchall()
执行上面的语句,在控制台打印的时候,本来数据库中存放的中文信息,在打印时成了对应的unicode编码
数据库中表的信息如下
打印的结果如下表
这些信息是以元组的形式表现的,然后上网找了下资料,怎样解决将unicode编码转换为之前的中文,得到如下解决方法
string="\u897f\u5b89\u5e02\u91d1\u82b1\u5357\u8def\u4e94\u53f7"
print string.decode("unicode-escape")
这个时候打印就出现中文了
又上网找了下,得到如下解决方法:
调用json模块的dumps方法
- t_tuple=('哈哈','你好')
- t_list=['哈哈','你好']
- t_dict={1:'哈哈',2:'你好'}
- print json.dumps(t_tuple,encoding='UTF-8',ensure_ascii=False)
- print json.dumps(t_list,encoding='UTF-8',ensure_ascii=False)
- print json.dumps(t_dict,encoding='UTF-8',ensure_ascii=False) 这部分出自博客http://blog.csdn.net/buptlrw/article/details/48027657
#!/usr/bin/python
#coding=utf-8
import MySQLdb
import json
con= MySQLdb.connect(host='localhost',user='root',passwd='',db='lv_test',charset='utf8')
#使用连接对象获得一个cursor对象,
cursor =con.cursor()
sql ="select * from zhunkaozheng"
#执行单条sql语句,接收的参数为sql语句本身和使用的参数列表,返回值为受影响的行数
cursor.execute(sql)
#返回一条结果行
#row=cursor.fetchone()
#接收全部的返回结果行.row里保存的将会是查询返回的全部结果.每条结果都是一个tuple类型的数据,
row=cursor.fetchall()
print json.dumps(row,encoding='UTF-8',ensure_ascii=False)
f=open('goods.txt', 'w')
f.write(str(row))
f.close()
#关闭指针对象
cursor.close()
#关闭连接对象
con.close()
最终成功显示,只不过这次信息是以列表形式显示的,如下
初学python,记录一些经验方法