該腳本是為了結(jié)合之前的編寫(xiě)的腳本,來(lái)實(shí)現(xiàn)數(shù)據(jù)的比對(duì)模塊,實(shí)現(xiàn)數(shù)據(jù)的自動(dòng)化!由于數(shù)據(jù)格式是定死的,該代碼只做參考,有什么問(wèn)題可以私信我!
CSV的數(shù)據(jù)格式截圖如下:
readDataToDic.py源代碼如下:
#coding=utf8import csv '''該模塊的主要功能,是根據(jù)已有的csv文件,通過(guò)readDataToDicl函數(shù),把csv中對(duì)應(yīng)的部分,寫(xiě)入字典中,每個(gè)字典當(dāng)當(dāng)作一條json數(shù)據(jù)'''class GenExceptData(object): def __init__(self): try: #用來(lái)存放json數(shù)據(jù)的字典 self.dataDic={} #存放csv中讀取的數(shù)據(jù) self.mdbuffer=[] #打開(kāi)csv文件,設(shè)置讀的權(quán)限 csvHand=open("20170510174450.csv","r") #創(chuàng)建讀取csv文件句柄 readcsv=csv.reader(csvHand) #把csv的數(shù)據(jù)讀取到mdbuffer中 for row in readcsv: self.mdbuffer.append(row) #把數(shù)據(jù)穿件為為字典類(lèi)型的 self.readDataToDicl() #保存文件 except Exception,e: print "Read Excel error:",e finally: #關(guān)閉csv文件 csvHand.close() def readDataToDicl(self): try: #獲取mdbuffer中的元素個(gè)數(shù) rowNumber=len(self.mdbuffer) #設(shè)置當(dāng)前行號(hào) currentrow=1 #設(shè)置json數(shù)據(jù)的屬性值 propertyJson={} #讀取列表中的元素 for row in range(1,rowNumber): #創(chuàng)建一個(gè)臨時(shí)變量用來(lái)存取一次循環(huán)的屬性鍵值 temp={} #獲取列表中一個(gè)元素 item=self.mdbuffer[row] #獲取當(dāng)前元素,當(dāng)前元素代表的是每個(gè) #事件起始的位置 currentItem=self.mdbuffer[currentrow] #獲取serviceId并進(jìn)行解碼 serviceId= currentItem[2].decode("gbk") #獲取屬性并進(jìn)行解碼,把解碼的值存入propertyName propertyName=item[3].decode("gbk") #獲取屬性值并進(jìn)行解碼,把解碼的值存入propertyValue propertyValue=item[4].decode("gbk") #判斷埋點(diǎn)事件與serviceId是否相等 if item[0]==currentItem[0] and item[2]==currentItem[2]: #把serviceId方式字典propertyJson中 propertyJson["serviceId"]=serviceId #把屬性/值對(duì)放入temp字典中 temp[propertyName]=propertyValue #調(diào)用字典的update函數(shù),把temp中的鍵值對(duì) #添加到 propertyJson字典中 propertyJson.update(temp) #使用continue,如果為if條件為true則循環(huán)執(zhí)行if語(yǔ)句模塊 continue else: #把行號(hào)設(shè)置為當(dāng)前行 currentrow=row #把當(dāng)前的屬性解碼放入propertyName propertyName=currentItem[3].decode("gbk") #把當(dāng)前的屬性值解碼放入propertyName propertyValue=currentItem[4].decode("gbk") #把serviceId方式字典propertyJson中 propertyJson["serviceId"]=serviceId #把屬性/值對(duì)放入propertyJson字典中 propertyJson[propertyName]=propertyValue #輸入字典中的值,并對(duì)值進(jìn)行解碼 #該部分用于調(diào)試使用 for key,val in propertyJson.items(): print key,"=",val.encode("utf8") print "#"*50 #為下次做準(zhǔn)備,清除字典中的元素 propertyJson.clear() except Exception,e: print "Reading Data TO Dic Error:",e def test(): GenExceptData() if __name__=="__main__": test()
新聞熱點(diǎn)
疑難解答
圖片精選