python3 mysqldb查询_python -mysqldb 查询和插入问题

1.系统环境:

python 2.7

2.在使用MySQLdb模块的时候发现:

db=MySQLdb.connect(host=“localhost”,user=“root”,passwd=“123456”,db=“student”,charset="utf8")

cursor=db.cursor()

sql="select * from student"

cursor.execute(sql)

results=cursor.fetchmany(5)

fi=open("/tmp/python-save",'wb')

for i in results:

Str=i.__str__()

fi.write(Str)

fi.close()

但是在获取的内容中出现

(946936L, 1333L, u'G-001-001B', u'622909326808922712', u'*xe7u0178xb3xe6u02dcu017dxe6xb5xb7', 141301594L, 0.0, 4800.0, u'020000009669', Decimal('1.00'), 1, 0.0, 0.0, 0.0, 0.0, 100.0, datetime.datetime(2016, 6, 20, 14, 41, 41), datetime.datetime(2016, 6, 21, 10, 13, 4), 2762L, 0L, 0L, None, 1613258L, datetime.date(2016, 7, 3), 1)

有两个问题:

1.获取内容中的u'*xe7u0178xb3xe6u02dcu017dxe6xb5xb7' 为什么不显示中文,已经尝试了很多次,将编码该加的都加了,(encoding,python环境,数据库编码),有什么办法可以解决的吗?

2.想将上面的一条语句再次插入到原表中(在插入之前,原表中的原数据已经被删除,不会出现主键报错,不让插入该语句的情况)

直接插入上面的语句肯定是不行的(数据中存在字段的类型),有什么办法将上面的语句转换成可以直接插入的语句吗。(不要一个一个的赋值)

谢谢!

results:

((946936L, 1333L, u'G-001-001B', u'622909326808922712', u'xe7u0178xb3xe6u02dcu017dxe6xb5xb7', 141301594L, 0.0, 4800.0, u'020000009669', Decimal('1.00'), 1, 0.0, 0.0, 0.0, 0.0, 100.0, datetime.datetime(2016, 6, 20, 14, 41, 41), datetime.datetime(2016, 6, 21, 10, 13, 4), 2762L, 0L, 0L, None, 1613258L, datetime.date(2016, 7, 3), 1), (946938L, 1155L, u'G-001-005', u'966666323355759717', u'xe5xbcxa0xe5xadxa6', 132001643L, 0.38, 2880.0, u'020000020580', Decimal('1.00'), 1, 0.0, 0.0, 0.0, 0.0, 99.62, datetime.datetime(2016, 6, 20, 15, 25, 38), datetime.datetime(2016, 6, 21, 10, 13, 5), 2762L, 20212L, 2L, None, 1613272L, datetime.date(2016, 7, 13), 1), (946940L, 1134L, u'J-002-012', u'966666323504681316', u'xe6x9du017dxe6u02dcxa5xe5x8du017d', 131300758L, 12.16, 6187.0, u'020000020582', Decimal('1.00'), 1, 0.0, 0.0, 0.0, 0.0, 3187.84, datetime.datetime(2016, 6, 20, 15, 35, 26), datetime.datetime(2016, 6, 21, 10, 13, 5), 2762L, 19937L, 2L, None, 1613276L, datetime.date(2016, 7, 13), 1), (946942L, 1151L, u'S-002-003', u'622909326232874711', u'xe5xadu2122xe6xb5xb7xe6xbax90', 131600574L, 11.32, 3278.0, u'020000020583', Decimal('1.00'), 1, 0.0, 0.0, 0.0, 0.0, 2968.68, datetime.datetime(2016, 6, 20, 15, 38, 26), datetime.datetime(2016, 6, 21, 10, 13, 5), 2762L, 20036L, 2L, None, 1613278L, datetime.date(2016, 6, 26), 1), (946946L, 1353L, u'G-001-001', u'966666323782153913', u'*xe5x8fxb6xe5u0153xa3xe6u2030x8d', 141801664L, 0.0, 7360.0, u'020000020587', Decimal('1.00'), 1, 0.0, 0.0, 0.0, 0.0, 100.0, datetime.datetime(2016, 6, 20, 16, 28, 24), datetime.datetime(2016, 6, 21, 10, 13, 5), 2762L, 0L, 0L, None, 1613290L, datetime.date(2016, 7, 2), 1))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值