zoukankan      html  css  js  c++  java
  • Python连接sqlserver数据库之pymssql

      python解析json并插入sqlserver数据库

    aa = '''
    {
    	"content": {
    		"TOP7Area": {
    			"DealAmt": {
    				"series": [0.29298947195100183, 0.2135304775092206, 0.20675939264824816, 0.09773412652627451, 0.07242409925840472, 0.06532367663429699, 0.051238755472553243],
    				"categories": ["华北", "华东", "华南", "西南", "华中", "东北", "西北"],
    				"areaId": [2, 1, 4, 5, 3, 7, 6]
    			},
    			"DealProNum": {
    				"series": [0.2764716654223775, 0.20595568452339028, 0.20240593878097224, 0.10578805764110943, 0.08347537011733881, 0.06847346846783395, 0.057429815046977785],
    				"categories": ["华北", "华东", "华南", "西南", "华中", "东北", "西北"],
    				"areaId": [2, 1, 4, 5, 3, 7, 6]
    			}
    		},
    		"TOP30Province": {
    			"DealAmt": {
    				"series": [0.15345869834502007, 0.15028603134221932, 0.08193262885007846, 0.07302306919396033, 0.055967931949030936, 0.0497644220542182, 0.03829218039269386, 0.03693218393736331, 0.034596378207719644, 0.027767527609925905, 0.026605367811030203, 0.0240297338320359, 0.02386233137138838, 0.020869266594564225, 0.019689725260189653, 0.018964551712431083, 0.01717644872475621, 0.01667862546491835, 0.01591715304680989, 0.014196888063957936, 0.013350342232054342, 0.013327840057648609, 0.012956935678015011, 0.012312309545204368, 0.01113879306881129, 0.01008172470750325, 0.009748637671650028, 0.006898981840746887, 0.004240215282566032, 0.003246025451287793],
    				"categories": ["广东", "北京", "上海", "江苏", "山东", "四川", "浙江", "河北", "辽宁", "河南", "陕西", "天津", "福建", "安徽", "广西", "湖南", "重庆", "内蒙古", "山西", "贵州", "云南", "湖北", "吉林", "黑龙江", "江西", "新疆", "海南", "甘肃", "宁夏", "西藏"],
    				"areaId": [19, 1, 2, 12, 13, 22, 15, 5, 8, 7, 27, 3, 16, 14, 20, 18, 4, 11, 6, 24, 25, 17, 9, 10, 21, 31, 23, 28, 30, 26]
    			},
    			"DealProNum": {
    				"series": [0.1481314532828105, 0.12021242129283993, 0.07520671634432534, 0.07079770675156005, 0.06479694609175811, 0.05569720105365469, 0.041864461692327194, 0.0391176346297418, 0.037624487611105636, 0.032299868997478554, 0.030651772759927316, 0.02558070741361581, 0.023439590934062064, 0.021974616500683185, 0.021749235818624896, 0.020932230846163597, 0.018819286951867138, 0.017988195686777196, 0.016086546181910383, 0.014438449944359144, 0.014128551506528997, 0.014072206336014425, 0.013635531264526489, 0.013072079559380766, 0.011423983321829527, 0.010170303277880295, 0.008508120747700413, 0.00776154723838233, 0.004310405544364779, 0.002760913355214041],
    				"categories": ["广东", "北京", "江苏", "上海", "山东", "四川", "河北", "浙江", "辽宁", "河南", "陕西", "福建", "天津", "湖南", "安徽", "广西", "重庆", "山西", "湖北", "云南", "内蒙古", "贵州", "吉林", "黑龙江", "江西", "新疆", "甘肃", "海南", "宁夏", "西藏"],
    				"areaId": [19, 1, 12, 2, 13, 22, 5, 15, 8, 7, 27, 16, 3, 18, 14, 20, 4, 6, 17, 25, 11, 24, 9, 10, 21, 31, 28, 23, 30, 26]
    			}
    		},
    		"TOP30City": {
    			"DealAmt": {
    				"series": [0.15028603134221954, 0.08193262885007857, 0.052891245870140116, 0.044896619251042026, 0.031228382890062797, 0.024029733832035934, 0.018138759767332324, 0.017924482734731056, 0.017632528839430114, 0.017176448724756235, 0.016933056557786808, 0.01472292191220441, 0.013234555772560986, 0.011710479191453559, 0.011663233255491843, 0.011507516338707925, 0.00971699785045654, 0.009696288749628043, 0.0090456197790644, 0.008720990754635756, 0.00870015383397705, 0.008684310713129799, 0.00827402311506952, 0.008045364553592536, 0.007654497397100686, 0.0076419311713378886, 0.007435664944207942, 0.007311207658176262, 0.0071375211039325336, 0.006359017265532288],
    				"categories": ["北京", "上海", "深圳市", "广州市", "成都市", "天津", "杭州市", "南京市", "西安市", "重庆", "苏州市", "沈阳市", "济南市", "青岛市", "郑州市", "东莞市", "长沙市", "佛山市", "厦门市", "南宁市", "石家庄市", "合肥市", "大连市", "哈尔滨市", "长春市", "贵阳市", "无锡市", "太原市", "昆明市", "武汉市"],
    				"areaId": [-1, -2, 1607, 1601, 1930, -3, 1213, 904, 2376, -4, 988, 560, 1000, 1007, 412, 1655, 1482, 1666, 1315, 1715, 142, 1116, 573, 698, 639, 2144, 984, 303, 2235, 1381]
    			},
    			"DealProNum": {
    				"series": [0.12021242129283993, 0.07079770675156005, 0.04568184699468947, 0.04214618754490006, 0.03366623938245693, 0.023439590934062064, 0.01979124114324351, 0.018819286951867138, 0.018762941781352564, 0.017157104421687257, 0.01649504866814103, 0.01569212998830838, 0.014522967700131003, 0.013156597315152625, 0.012550886732120974, 0.012142384245890325, 0.010621064641996874, 0.010113958107365723, 0.009423729768562213, 0.009170176501246637, 0.008944795819188348, 0.00859263850347227, 0.008536293332957698, 0.008437689284557197, 0.008141877139355692, 0.00794466904255469, 0.007817892408896902, 0.0077474609457536875, 0.0070713188995788195, 0.006860024510149174],
    				"categories": ["北京", "上海", "深圳市", "广州市", "成都市", "天津", "西安市", "重庆", "苏州市", "杭州市", "沈阳市", "南京市", "济南市", "青岛市", "郑州市", "东莞市", "长沙市", "佛山市", "南宁市", "厦门市", "武汉市", "石家庄市", "大连市", "合肥市", "昆明市", "长春市", "无锡市", "哈尔滨市", "贵阳市", "太原市"],
    				"areaId": [-1, -2, 1607, 1601, 1930, -3, 2376, -4, 988, 1213, 560, 904, 1000, 1007, 412, 1655, 1482, 1666, 1715, 1315, 1381, 142, 573, 1116, 2235, 639, 984, 698, 2144, 303]
    			}
    		}
    	},
    	"message": "success",
    	"status": 0
    }
    '''
    
    
    import json
    import pandas as pd
    
    bb = json.loads(aa)
    type(bb)
    bb.keys()
    cc = bb['content']
    res = pd.DataFrame()
    for i in cc.keys():
        for j in cc[i].keys():
            tmp = pd.DataFrame(cc[i][j])
            tmp['c1'] = i
            tmp['c2'] = j
            res = pd.concat([res, tmp], axis=0)
        
    
    #pip install pymssql
    import pymssql
    # 打开数据库连接 这里的host='.'也可用本机ip或ip+端口号(sqlserver默认端口号:1433)
    conn = pymssql.connect(host=".",user= "xxx",password= "xxx", database="xxx", charset='utf8' )
    cursor = conn.cursor()
    sql1 = '''
       create table test(
           series  varchar(20),
           categories  varchar(20),
           areaId  varchar(10),
           c1  varchar(20),
           c2  varchar(20)
       );
    '''
    try:
        cursor.execute(sql1)   #执行sql语句
        connect.commit()  #提交
    except Exception as e:
       conn.rollback()
       print(e)
    
    sql2 = '''
    insert into test(series,categories,areaId,c1,c2) values(%f,%s,%s,%s,%s)
    '''
    try:
        cursor.execute(sql2)   #执行sql语句
        connect.commit()  #提交
    except Exception as e:
       conn.rollback()
       print(e)
    cursor.close()   #关闭游标
    connect.close()  #关闭连接
    
    
    sql = '''select * form json'''
    cursor.execute(sql)
    data = cursor.fetchall()
    
    cols = [i[0] for i in cursor.description]
    
    cursor.close()   #关闭游标
    connect.close()  #关闭连接
    
    data = pd.DataFrame(data, columns=cols)
    
    
    aa = pd.read_clipboard()
    aa.shape
    

      

      

  • 相关阅读:
    Linux命令-网络命令:netstat
    Linux命令-网络命令:traceroute
    Linux命令-网络命令:lastlog
    Linux命令-网络命令:last
    mongodb3.4 安装及用户名密码设置
    MySQL表名不区分大小写的设置方法
    数据库设计中的四个范式
    dubbo本地调试直连
    com.mysql.jdbc.PacketTooBigException: Packet for query is too large (1169 > 1024)
    Linux服务器时间同步
  • 原文地址:https://www.cnblogs.com/iupoint/p/12802357.html
Copyright © 2011-2022 走看看