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


Posted in Python onFebruary 12, 2019

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

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 相关文章推荐
下载安装setuptool和pip linux安装pip    
Jan 24 Python
python抓取网页中的图片示例
Feb 28 Python
python分析nignx访问日志脚本分享
Feb 26 Python
python简单的函数定义和用法实例
May 07 Python
Python3数字求和的实例
Feb 19 Python
python字典一键多值实例代码分享
Jun 14 Python
利用python实现PSO算法优化二元函数
Nov 13 Python
使用Python实现正态分布、正态分布采样
Nov 20 Python
Python decorator拦截器代码实例解析
Apr 04 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
Jul 03 Python
pandas将list数据拆分成行或列的实现
Dec 13 Python
解决pytorch读取自制数据集出现过的问题
May 31 Python
python 实现读取一个excel多个sheet表并合并的方法
Feb 12 #Python
python 利用pandas将arff文件转csv文件的方法
Feb 12 #Python
python将pandas datarame保存为txt文件的实例
Feb 12 #Python
对Python 多线程统计所有csv文件的行数方法详解
Feb 12 #Python
Python多线程同步---文件读写控制方法
Feb 12 #Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
Feb 12 #Python
Python 互换字典的键值对实例
Feb 12 #Python
You might like
php错误、异常处理机制(补充)
2012/05/07 PHP
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
jquery 插件开发备注
2010/08/27 Javascript
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
最简单的JavaScript验证整数、小数、实数、有效位小数正则表达式
2015/04/17 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
js表单验证实例讲解
2016/03/31 Javascript
JavaScript面向对象编写购物车功能
2016/08/19 Javascript
详解vue-cli快速构建项目以及引入bootstrap、jq
2017/05/26 Javascript
JavaScript私有变量实例详解
2019/01/24 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
js回到页面指定位置的三种方式
2020/12/17 Javascript
python中将阿拉伯数字转换成中文的实现代码
2011/05/19 Python
python监控文件或目录变化
2016/06/07 Python
浅谈django的render函数的参数问题
2018/10/16 Python
Python简单I/O操作示例
2019/03/18 Python
pyQt5实时刷新界面的示例
2019/06/25 Python
Python使用matplotlib 画矩形的三种方式分析
2019/10/31 Python
Python视频编辑库MoviePy的使用
2020/04/01 Python
深入了解python列表(LIST)
2020/06/08 Python
Python叠加矩形框图层2种方法及效果
2020/06/18 Python
PyTorch如何搭建一个简单的网络
2020/08/24 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
总经理文秘岗位职责
2014/02/03 职场文书
开学季活动策划方案
2014/02/28 职场文书
计算机毕业生自荐信范文
2014/03/23 职场文书
市场营销专业毕业生求职信
2014/07/21 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
公路局群众路线教育实践活动第一阶段工作汇报
2014/10/25 职场文书
师德师风学习材料
2014/12/19 职场文书
初三毕业评语
2014/12/26 职场文书
二十年同学聚会致辞
2015/07/28 职场文书
团结友爱主题班会
2015/08/13 职场文书
Python开发之QT解决无边框界面拖动卡屏问题(附带源码)
2021/05/27 Python
tomcat下部署jenkins的方法
2022/05/06 Servers