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 相关文章推荐
简单讲解Python中的字符串与字符串的输入输出
Mar 13 Python
深度定制Python的Flask框架开发环境的一些技巧总结
Jul 12 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
Jun 14 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
Sep 04 Python
Python爬虫——爬取豆瓣电影Top250代码实例
Apr 17 Python
用Python获取摄像头并实时控制人脸的实现示例
Jul 11 Python
python中dict()的高级用法实现
Nov 13 Python
浅谈Python中文件夹和python package包的区别
Jun 01 Python
python如何建立全零数组
Jul 19 Python
Python图像识别+KNN求解数独的实现
Nov 13 Python
Keras保存模型并载入模型继续训练的实现
Feb 20 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
Nov 11 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快速查找数据库中恶意代码的方法
2015/04/01 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
PHP实现微信小程序用户授权的工具类示例
2019/03/05 PHP
PHP获取远程http或ftp文件的md5值的方法
2019/04/15 PHP
PHP中迭代器的简单实现及Yii框架中的迭代器实现方法示例
2020/04/26 PHP
封装的原生javascript弹出层代码
2010/09/24 Javascript
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
2012/03/14 Javascript
Jquery获得控件值的三种方法总结
2014/02/13 Javascript
Node.js实现Excel转JSON
2015/04/24 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
Bootstrap每天必学之简单入门
2015/11/19 Javascript
XMLHttpRequest Level 2 使用指南
2016/08/26 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
2017/03/21 jQuery
vue.js 获取当前自定义属性值
2017/06/01 Javascript
node.js express中app.param的用法详解
2017/07/16 Javascript
详解JSONObject和JSONArray区别及基本用法
2017/10/25 Javascript
使用veloticy-ui生成文字动画效果
2018/02/08 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
浅谈微信小程序列表埋点曝光指南
2019/10/15 Javascript
基于Vue的侧边目录组件的实现
2020/02/05 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
VUE : vue-cli中去掉路由中的井号#操作
2020/09/04 Javascript
Python continue语句实例用法
2020/02/06 Python
python中数据库like模糊查询方式
2020/03/02 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
道路建设实施方案
2014/03/18 职场文书
党员批评与自我批评总结
2014/10/15 职场文书
质量保证书格式
2015/02/27 职场文书
买卖合同纠纷代理词
2015/05/25 职场文书
小学2016年第十八届推普周活动总结
2016/04/05 职场文书