欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

使用python將mysql數據庫的數據轉換為json數據的方法

系統 1675 0

由于產品運營部需要采用第三方個推平臺,來推送消息。如果手動一個個鍵入字段和字段值,容易出錯,且非常繁瑣,需要將mysql的數據轉換為json數據,直接復制即可。

本文將涉及到如何使用Python訪問Mysql數據庫及讀取獲取數據(前提需要安裝MySQLdb第三方庫哦),以及如何將數據轉換為json數據,最后保存成文件輸出。

代碼如下:注釋比較詳細了。

            
# coding=utf-8
'''
Created on 2016-10-26
@author: Jennifer
Project:讀取mysql數據庫的數據,轉為json格式
'''
import json,MySQLdb

def TableToJson(): 
  try:
    #1-7:如何使用python DB API訪問數據庫流程的
    #1.創建mysql數據庫連接對象connection
    #connection對象支持的方法有cursor(),commit(),rollback(),close()
    conn = MySQLdb.Connect(host='mysql服務器地址',user='用戶名',passwd='密碼',db='數據庫名稱',port=3306,charset = 'utf8') 
    #2.創建mysql數據庫游標對象 cursor
    #cursor對象支持的方法有execute(sql語句),fetchone(),fetchmany(size),fetchall(),rowcount,close()
    cur = conn.cursor()
    #3.編寫sql
    sql = "SELECT pm.name AS nm,pm.desc AS dc,pm.image_url AS iu,pm.image_type AS it, pm.on_going AS og, pm.type AS mt,pm.pkgName AS pn,pm.apk_url AS du,pm.apkMd5 AS am,pm.minversionCode AS mc,pm.versionCode AS vc,pm.versionName AS vn, pm.signatureMd5 AS sm,pm.source AS se,pm.action AS ao FROM message pm WHERE pm.id = '217'"
    #4.執行sql命令
    #execute可執行數據庫查詢select和命令insert,delete,update三種命令(這三種命令需要commit()或rollback())
    cur.execute(sql)
    #5.獲取數據 
    #fetchall遍歷execute執行的結果集。取execute執行后放在緩沖區的數據,遍歷結果,返回數據。
    #返回的數據類型是元組類型,每個條數據元素為元組類型:(('第一條數據的字段1的值','第一條數據的字段2的值',...,'第一條數據的字段N的值'),(第二條數據),...,(第N條數據))
    data = cur.fetchall()
    print u'fetchall()返回的數據:',data
    #6.關閉cursor
    cur.close()
    #7.關閉connection
    conn.close()
    jsonData = []
    #循環讀取元組數據
    #將元組數據轉換為列表類型,每個條數據元素為字典類型:[{'字段1':'字段1的值','字段2':'字段2的值',...,'字段N:字段N的值'},{第二條數據},...,{第N條數據}]
    for row in data: 
      result = {} 
      result['nm'] = row[0] 
      result['dc'] = row[1] 
      result['iu'] = row[2] 
      result['it'] = str(row[3])  
      result['og'] = str(row[4])  
      result['mt'] = str(row[5])  
      result['pn'] = row[6] 
      result['du'] = row[7] 
      result['am'] = row[8] 
      result['mc'] = str(row[9]) 
      result['vc'] = str(row[10]) 
      result['vn'] = row[11] 
      result['sm'] = row[12]
      result['se'] = str(row[13]) 
      result['ao'] = str(row[14])  
      jsonData.append(result)
      print u'轉換為列表字典的原始數據:',jsonData
      
  except: 
    print 'MySQL connect fail...' 
  else:
    #使用json.dumps將數據轉換為json格式,json.dumps方法默認會輸出成這種格式"\u5377\u76ae\u6298\u6263",加ensure_ascii=False,則能夠防止中文亂碼。
    #JSON采用完全獨立于語言的文本格式,事實上大部分現代計算機語言都以某種形式支持它們。這使得一種數據格式在同樣基于這些結構的編程語言之間交換成為可能。
    #json.dumps()是將原始數據轉為json(其中單引號會變為雙引號),而json.loads()是將json轉為原始數據。
    jsondatar=json.dumps(jsonData,ensure_ascii=False)
    #去除首尾的中括號
    return jsondatar[1:len(jsondatar)-1]
 
if __name__ == '__main__': 
  #調用函數
  jsonData = TableToJson() 
  print u'轉換為json格式的數據:',jsonData 
  #以讀寫方式w+打開文件,路徑前加r,防止字符轉義
  f = open(r'D:\getui\getuidata.txt','w+')
  #寫數據
  f.write(jsonData)
  #關閉文件 
  f.close()
          

執行結果:(注代碼上方打印的數據為了方便查看數據,可屏蔽,最終json數據會保存在txt文件中)

fetchall()返回的數據: ((u'\u5377\u76ae\u6298\u6263', u'\u5377\u76ae\u6298\u6263', u'http://域名/push/push_d701df5f48c727df46c847fa912993cf.jpg', 3L, 0L, 1L, u'com.juanpi.ui', u'http://域名/apk_1476871813.apk', u'301e757dc6669ecc95ffaaae13bb096d', 14L, 64L, u'4.1.2', u'd1e536a6a60f414700cf3c86f28719c2', 3L, 2L),)
轉換為列表字典的原始數據: [{'vc': '64', 'nm': u'\u5377\u76ae\u6298\u6263', 'mc': '14', 'og': '0', 'am': u'301e757dc6669ecc95ffaaae13bb096d', 'iu': u'http://域名/push/push_d701df5f48c727df46c847fa912993cf.jpg', 'it': '3', 'vn': u'4.1.2', 'dc': u'\u5377\u76ae\u6298\u6263', 'mt': '1', 'ao': '2', 'sm': u'd1e536a6a60f414700cf3c86f28719c2', 'du': u'http://域名/apk_1476871813.apk', 'pn': u'com.juanpi.ui', 'se': '3'}]
轉換為json格式的數據: {"vc": "64", "nm": "卷皮折扣", "mc": "14", "og": "0", "am": "301e757dc6669ecc95ffaaae13bb096d", "iu": "http:/域名/push/push_d701df5f48c727df46c847fa912993cf.jpg", "it": "3", "vn": "4.1.2", "dc": "卷皮折扣", "mt": "1", "ao": "2", "sm": "d1e536a6a60f414700cf3c86f28719c2", "du": "http://域名/apk_1476871813.apk", "pn": "com.juanpi.ui", "se": "3"}

使用python將mysql數據庫的數據轉換為json數據的方法_第1張圖片

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精一区二区 | 精品一区二区三区在线视频 | 91看视频| 色网站综合 | 国产日韩一区 | 国产成人99久久亚洲综合精品 | 激情色播| 国产精品99爱免费视频 | 日本一区视频 | 成人免费视频观看 | 国产免费av大片 | 国产精品国产a | 亚洲一区在线免费 | 亚洲人成网站看在线播放 | www.国产欧美| 玖操网 | 午夜影院网站 | 亚洲AV久久久久久久无码 | 开心激情综合网 | 欧美成人免费午夜影视 | 伊人久久电影网 | 999热精品视频 | 黑色丝袜美女被狂躁 | 亚洲国产欧美自拍 | 久久经典视频 | 精品国产一区在线观看 | 黄色福利| 久久综合久久综合久久综合 | 色噜噜狠狠大色综合 | 成人黄性视频 | 丝袜天堂 | 欧美精品久久久久久久久老牛影院 | 久久久久久久国产视频 | 欧美在线观看一区二区 | 天天骑夜夜操 | 69国产成人精品午夜福中文 | 美女扣下面流白浆丝袜 | 国产99视频在线 | 天天骑天天干 | 狠狠的撸2015最新版狠狠的撸2015最新版 | 成人午夜电影在线观看 |