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实现自动登录人人网并访问最近来访者实例
Sep 26 Python
Python回调函数用法实例详解
Jul 02 Python
Python安装lz4-0.10.1遇到的坑
May 20 Python
Python多进程池 multiprocessing Pool用法示例
Sep 07 Python
python assert的用处示例详解
Apr 01 Python
Python中面向对象你应该知道的一下知识
Jul 10 Python
Python GUI自动化实现绕过验证码登录
Jan 10 Python
python实现在一个画布上画多个子图
Jan 19 Python
使用Keras训练好的.h5模型来测试一个实例
Jul 06 Python
python 中的命名空间,你真的了解吗?
Aug 19 Python
Python Pandas数据分析工具用法实例
Nov 05 Python
python全栈开发语法总结
Nov 22 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中的超全局变量
2006/10/09 PHP
php+mysql写的简单留言本实例代码
2008/07/25 PHP
fetchAll()与mysql_fetch_array()的区别详解
2013/06/05 PHP
CI框架安全类Security.php源码分析
2014/11/04 PHP
Yii rules常用规则示例
2016/03/15 PHP
浅谈php调用python文件
2019/03/29 PHP
js中的window.open返回object的错误的解决方法
2009/08/15 Javascript
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
javascript定时保存表单数据的代码
2011/03/17 Javascript
23个超流行的jQuery相册插件整理分享
2011/04/25 Javascript
10分钟学会写Jquery插件实例教程
2014/09/06 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
AngularJS入门之动画
2016/07/27 Javascript
常用的js方法合集
2017/03/10 Javascript
JS实现数组去重方法总结(六种方法)
2017/07/14 Javascript
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
小程序点赞收藏功能的实现代码示例
2018/09/07 Javascript
layui实现form表单同时提交数据和文件的代码
2019/10/25 Javascript
vue视频播放插件vue-video-player的具体使用方法
2019/11/08 Javascript
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[03:01]完美盛典趣味短片 DOTA2年度最佳&拉胯英雄
2019/12/07 DOTA
python用pandas数据加载、存储与文件格式的实例
2018/12/07 Python
基于python实现数组格式参数加密计算
2020/04/21 Python
JAVA SWT事件四种写法实例解析
2020/06/05 Python
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
JD Sports西班牙:英国领先的运动服装公司
2020/01/06 全球购物
Wiggle新西兰:自行车、跑步、游泳
2020/05/06 全球购物
盛大二次面试题
2016/11/18 面试题
受欢迎的大学生自我评价
2013/12/05 职场文书
家长会邀请书
2014/01/25 职场文书
单位绩效考核方案
2014/05/11 职场文书
2014年电厂工作总结
2014/12/04 职场文书
解除劳动合同通知书范本
2015/04/16 职场文书
三八红旗手主要事迹材料
2015/11/04 职场文书