首页 > 编程 > Python > 正文

Python把对应格式的csv文件转换成字典类型存储脚本的方法

2020-02-23 06:26:29
字体:
来源:转载
供稿:网友

该脚本是为了结合之前的编写的脚本,来实现数据的比对模块,实现数据的自动化!由于数据格式是定死的,该代码只做参考,有什么问题可以私信我!

CSV的数据格式截图如下:

Python把对应格式的csv文件转换成字典类型存储脚本

readDataToDic.py源代码如下:

#coding=utf8import csv '''该模块的主要功能,是根据已有的csv文件,通过readDataToDicl函数,把csv中对应的部分,写入字典中,每个字典当当作一条json数据'''class GenExceptData(object):  def __init__(self):    try:      #用来存放json数据的字典      self.dataDic={}      #存放csv中读取的数据      self.mdbuffer=[]      #打开csv文件,设置读的权限      csvHand=open("20170510174450.csv","r")      #创建读取csv文件句柄      readcsv=csv.reader(csvHand)      #把csv的数据读取到mdbuffer中      for row in readcsv:          self.mdbuffer.append(row)       #把数据穿件为为字典类型的      self.readDataToDicl()      #保存文件    except Exception,e:      print "Read Excel error:",e    finally:      #关闭csv文件      csvHand.close()   def readDataToDicl(self):    try:      #获取mdbuffer中的元素个数      rowNumber=len(self.mdbuffer)      #设置当前行号      currentrow=1      #设置json数据的属性值      propertyJson={}      #读取列表中的元素         for row in range(1,rowNumber):        #创建一个临时变量用来存取一次循环的属性键值        temp={}        #获取列表中一个元素        item=self.mdbuffer[row]        #获取当前元素,当前元素代表的是每个        #事件起始的位置        currentItem=self.mdbuffer[currentrow]        #获取serviceId并进行解码        serviceId= currentItem[2].decode("gbk")        #获取属性并进行解码,把解码的值存入propertyName        propertyName=item[3].decode("gbk")        #获取属性值并进行解码,把解码的值存入propertyValue        propertyValue=item[4].decode("gbk")        #判断埋点事件与serviceId是否相等        if item[0]==currentItem[0] and item[2]==currentItem[2]:          #把serviceId方式字典propertyJson中          propertyJson["serviceId"]=serviceId           #把属性/值对放入temp字典中                                   temp[propertyName]=propertyValue          #调用字典的update函数,把temp中的键值对          #添加到 propertyJson字典中          propertyJson.update(temp)          #使用continue,如果为if条件为true则循环执行if语句模块          continue         else:          #把行号设置为当前行          currentrow=row           #把当前的属性解码放入propertyName                    propertyName=currentItem[3].decode("gbk")          #把当前的属性值解码放入propertyName          propertyValue=currentItem[4].decode("gbk")          #把serviceId方式字典propertyJson中           propertyJson["serviceId"]=serviceId            #把属性/值对放入propertyJson字典中           propertyJson[propertyName]=propertyValue           #输入字典中的值,并对值进行解码          #该部分用于调试使用           for key,val in propertyJson.items():            print key,"=",val.encode("utf8")          print "#"*50           #为下次做准备,清除字典中的元素          propertyJson.clear()                   except Exception,e:      print "Reading Data TO Dic Error:",e    def test():  GenExceptData()  if __name__=="__main__":  test()            
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表