当前位置:   article > 正文

python 连接 sql server和mysql 数据库DBHelper类_pymssql 2.1.4 不会乱码

pymssql 2.1.4 不会乱码

记录一下,方便以后需要是查找

  1. # -*- coding:utf-8 -*-
  2. #若使用pymssql中文会发生乱码,请使用以下代码:
  3. #str.encode('latin1').decode('gbk')
  4. #str表示乱码的中文字符串
  5. #经测试 pymssql2.1.4+python3.5不会发生以上乱码问题
  6. import pymssql,pymysql
  7. class Mssql:
  8. def __init__(self):
  9. # 数据库连接参数
  10. self.host = '127.0.0.1'
  11. self.user = 'sa'
  12. self.pwd = '123456'
  13. self.db = 'DBName'
  14. def getConnect(self):
  15. if not self.db:
  16. raise(NameError, "没有设置数据库信息")
  17. # mysql连接字符串
  18. # self.conn = pymysql.connect(host=self.host, port=3307, user=self.user, passwd=self.pwd, db=self.db, charset="utf8mb4")
  19. self.conn = pymssql.connect(host=self.host, user=self.user, password=self.pwd, database=self.db, charset="utf8")
  20. cursor = self.conn.cursor()
  21. if not cursor:
  22. raise(NameError, "连接数据库失败")
  23. else:
  24. return cursor
  25. # 查
  26. def Query(self, sql):
  27. cursor = self.getConnect()
  28. cursor.execute(sql)
  29. resList = cursor.fetchall() # 获取查询的所有数据
  30. # 查询完毕后必须关闭连接
  31. self.conn.close()
  32. return resList
  33. # 增删改查
  34. def Excute(self, sql):
  35. cursor = self.getConnect()
  36. cursor.execute(sql)
  37. self.conn.commit()
  38. self.conn.close()
  39. # ms = Mssql()
  40. # # 查
  41. # reslist = ms.Query("select top 5 * from PubWarehouseCheckLog")
  42. # for i in reslist:
  43. # print(i)
  44. # 改
  45. # newsql = "update dbo.flow_original_batch set dealerscode='%s' where batchid='149-YLQY025960-20191009'" % u'测试'
  46. # print(newsql)
  47. # ms.Excute(newsql.encode('utf-8'))

查询出来的数据转字典

  1. data = [dict(zip(resList.keys(), resList)) for resList in resList]
  2. return data

 游标转换字典方式

  1. resList = [dict(zip([desc[0] for desc in cursor.description], result)) for result in resList]
  2. return resList

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/882489
推荐阅读
相关标签
  

闽ICP备14008679号