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中使用pprint函数进行格式化输出的教程
Apr 07 Python
Python Matplotlib库入门指南
May 18 Python
深入理解Python中字典的键的使用
Aug 19 Python
用Python将动态GIF图片倒放播放的方法
Nov 02 Python
python 读取DICOM头文件的实例
May 07 Python
Python使用Phantomjs截屏网页的方法
May 17 Python
Python从Excel中读取日期一列的方法
Nov 28 Python
使用python实现简单五子棋游戏
Jun 18 Python
PHP基于phpqrcode类库生成二维码过程解析
May 28 Python
python编写实现抽奖器
Sep 10 Python
Django基于Models定制Admin后台实现过程解析
Nov 11 Python
Python实现制作销售数据可视化看板详解
Nov 27 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
多重?l件?合查?(一)
2006/10/09 PHP
ajax实现无刷新分页(php)
2010/07/18 PHP
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
2010/10/12 PHP
PHP 第二节 数据类型之转换
2012/04/28 PHP
ThinkPHP 连接Oracle数据库的详细教程[全]
2012/07/16 PHP
Php中使用Select 查询语句的实例
2014/02/19 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
2018/10/18 PHP
VBScript版代码高亮
2006/06/26 Javascript
Ajax请求在数据量大的时候出现超时的解决方法
2014/02/27 Javascript
jQuery插件EasyUI获取当前Tab中iframe窗体对象的方法
2016/08/05 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
微信小程序template模板实例详解
2017/10/27 Javascript
使用jQuery 操作table 完成单元格合并的实例
2017/12/27 jQuery
webpack css加载和图片加载的方法示例
2018/09/11 Javascript
如何使用Jquery动态生成二级选项列表
2020/02/06 jQuery
vue渲染方式render和template的区别
2020/06/05 Javascript
vue:el-input输入时限制输入的类型操作
2020/08/05 Javascript
PyCharm使用教程之搭建Python开发环境
2016/06/07 Python
sublime text 3配置使用python操作方法
2017/06/11 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
分分钟入门python语言
2018/03/20 Python
python 正则表达式参数替换实例详解
2020/01/17 Python
python算的上脚本语言吗
2020/06/22 Python
纯css3无js实现的Android Logo(有简单动画)
2013/01/21 HTML / CSS
简单介绍HTML5中的文件导入
2015/05/08 HTML / CSS
Bibloo匈牙利:女装、男装、童装及鞋子和配饰
2019/04/14 全球购物
自荐信怎么写呢?
2013/12/09 职场文书
一年级班主任寄语
2014/01/19 职场文书
教育科研先进个人材料
2014/01/26 职场文书
升旗仪式演讲稿
2014/05/08 职场文书
商铺门前三包责任书
2014/07/25 职场文书
2014年仓库管理员工作总结
2014/11/18 职场文书
格林童话读书笔记
2015/06/30 职场文书
2016猴年春节慰问信
2015/11/30 职场文书
React实现动效弹窗组件
2021/06/21 Javascript
一文带你探究MySQL中的NULL
2021/11/11 MySQL