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

 更新时间:2019年02月12日 10:11:44   作者:坏蛋是我  
今天小编就为大家分享一篇Python把对应格式的csv文件转换成字典类型存储脚本的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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

CSV的数据格式截图如下:

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

readDataToDic.py源代码如下:

#coding=utf8
import 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()

运行结果图:

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

以上这篇Python把对应格式的csv文件转换成字典类型存储脚本的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python中条件语句、循环语句和pass语句的使用示例

    Python中条件语句、循环语句和pass语句的使用示例

    Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块,下面这篇文章主要给大家介绍了关于Python中条件语句、循环语句和pass语句使用的相关资料,需要的朋友可以参考下
    2022-06-06
  • Python对Excel不同的行分别复制不同的次数

    Python对Excel不同的行分别复制不同的次数

    这篇文章主要介绍了如何利用Python实现读取Excel表格文件数据,并将其中符合我们特定要求的那一行加以复制指定的次数,感兴趣的小伙伴可以学习一下
    2023-07-07
  • python设置中文界面实例方法

    python设置中文界面实例方法

    在本篇文章里小编给大家整理的是关于python设置中文界面实例方法,有兴趣的朋友们可以学习参考下。
    2020-10-10
  • 聊聊Pytorch torch.cat与torch.stack的区别

    聊聊Pytorch torch.cat与torch.stack的区别

    这篇文章主要介绍了Pytorch torch.cat与torch.stack的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python 列表,数组和矩阵sum的用法及区别介绍

    python 列表,数组和矩阵sum的用法及区别介绍

    今天小编就为大家分享一篇python 列表,数组和矩阵sum的用法及区别介绍,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • Python中__init__.py文件的作用详解

    Python中__init__.py文件的作用详解

    __init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件.这篇文章主要介绍了Python中__init__.py文件的作用详解,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • Python Flask入门之模板

    Python Flask入门之模板

    今天小编就为大家分享一篇Python Flask模板的入门教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-11-11
  • python subprocess.run()、subprocess.Popen()、subprocess.check_output()

    python subprocess.run()、subprocess.Popen()、subprocess.check

    Python的subprocess模块是用于创建和管理子进程的模块,本文主要介绍了python subprocess.run()、subprocess.Popen()、subprocess.check_output(),具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • 基于Python的PIL库学习详解

    基于Python的PIL库学习详解

    这篇文章主要介绍了基于Python的PIL库学习详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-05-05
  • Python __all__变量用法示例详解

    Python __all__变量用法示例详解

    这篇文章主要介绍了Python __all__变量用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04

最新评论