Python 生成json文件

1.数据准备 

   数据下载

2.python代码

import  datetime 
import  os
import  mssqlhelper


ms = mssqlhelper.MSSQL(host="192.168.0.108", user="sa", pwd="sa", db="ComPrject")
def getAreas(cityid):
    arealist=ms.ExecQuery("select *From  dbo.areas  where  cityid='%s' " % cityid)
    return arealist

def getCity(provinces):
    citylist=ms.ExecQuery("select *From  dbo.cities where provinceid='%s'" % provinces)
    return citylist

def getProvinces():
    provlist=ms.ExecQuery("select *From  dbo.provinces")
    return provlist

def createFileJson():
    date=datetime.datetime.now().strftime('%Y-%m-%d')
    path=date+'-provinces.json'
    return path


def writeJson(path):
    provlist=getProvinces()
    
    with open(path,"w+",encoding="utf-8") as  f:
        f.write("[")
        lp = 0
        for p in provlist:
            if lp>0:
                f.write(",\n")
            else:
                f.write("\n")
            f.write("{\n")
            f.write('"Code":"%s"\n'% p[1])
            f.write(',"Name":"%s"\n'% p[2])
            f.write(',Nodes:[\n')
            citylist=getCity(p[1])
            lc = 0
            for c in citylist:
                if lc>0:
                    f.write("\t,\n")
                else:
                    f.write("\n")
                f.write("\t{\n")
                f.write('\t"Code":"%s"\n'% c[1])
                f.write('\t,"Name":"%s"\n'% c[2])
                f.write('\t,Nodes:[\n')
                arealist = getAreas(c[1])
                la = 0
                for a in arealist:
                    if la>0:
                        f.write("\t\t,\n")
                    else:
                        f.write("\n")
                    f.write("\t\t{\n")
                    f.write('\t\t"Code":"%s"\n'% a[1])
                    f.write('\t\t,"Name":"%s"\n'% a[2])
                    f.write("\t\t}\n")
                    la += 1
                f.write("\t]\n")
                f.write("\t}\n")
                lc += 1
            f.write("]\n")
            f.write("}\n")
            lp += 1
        f.write("]\n")
            
                

if __name__ == '__main__':
    path=createFileJson()
    writeJson(path)
    

3.生成预览

 

posted @ 2018-04-12 17:00  sulin  阅读(36192)  评论(3编辑  收藏  举报