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运算π的值深入Python中科学计算的实现
Apr 17 Python
Python实现线程池代码分享
Jun 21 Python
Python实现列表删除重复元素的三种常用方法分析
Nov 24 Python
Python实现App自动签到领取积分功能
Sep 29 Python
python的set处理二维数组转一维数组的方法示例
May 31 Python
对PyQt5中树结构的实现方法详解
Jun 17 Python
Gauss-Seidel迭代算法的Python实现详解
Jun 29 Python
Tensorflow模型实现预测或识别单张图片
Jul 19 Python
django框架CSRF防护原理与用法分析
Jul 22 Python
python字典setdefault方法和get方法使用实例
Dec 25 Python
Python读取文件内容为字符串的方法(多种方法详解)
Mar 04 Python
解决paramiko执行命令超时的问题
Apr 16 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中try catch捕获异常实例详解
2014/11/21 PHP
Linux系统下php获得系统分区信息的方法
2015/03/30 PHP
利用PHP判断是手机移动端还是PC端访问的函数示例
2017/12/14 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
javascript document.execCommand() 常用解析
2009/12/14 Javascript
jquery键盘事件使用介绍
2011/11/01 Javascript
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
javascript使用正则表达式检测IP地址
2014/12/03 Javascript
微信小程序 教程之数据绑定
2016/10/18 Javascript
用jQuery实现优酷首页轮播图
2017/01/09 Javascript
原生JS和jQuery操作DOM对比总结
2017/01/19 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
详解Vue实战指南之依赖注入(provide/inject)
2018/11/13 Javascript
vue中引入第三方字体文件的方法示例
2018/12/17 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
python调用新浪微博API项目实践
2014/07/28 Python
python去除所有html标签的方法
2015/05/05 Python
python字符类型的一些方法小结
2016/05/16 Python
Python读取图片属性信息的实现方法
2016/09/11 Python
Python之Web框架Django项目搭建全过程
2017/05/02 Python
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
2018/06/11 Python
Python读取YUV文件,并显示的方法
2018/12/04 Python
Python hexstring-list-str之间的转换方法
2019/06/12 Python
python计算导数并绘图的实例
2020/02/29 Python
单位领导证婚词
2014/01/14 职场文书
小学岗位竞聘方案
2014/01/22 职场文书
学校评语大全
2014/05/06 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
幼儿园植树节活动总结
2014/07/04 职场文书
美容院员工规章制度
2015/08/05 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
golang中的空slice案例
2021/04/27 Golang
Mysql开启外网访问
2022/05/15 MySQL