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 内置函数小结
Aug 09 Python
python基于urllib实现按照百度音乐分类下载mp3的方法
May 25 Python
python模块简介之有序字典(OrderedDict)
Dec 01 Python
python实现NB-IoT模块远程控制
Jun 20 Python
对Python 数组的切片操作详解
Jul 02 Python
python实现石头剪刀布程序
Jan 20 Python
Python生成rsa密钥对操作示例
Apr 26 Python
解析Python3中的Import
Oct 13 Python
python安装dlib库报错问题及解决方法
Mar 16 Python
python爬虫分布式获取数据的实例方法
Nov 26 Python
python 高阶函数简单介绍
Feb 19 Python
Pytorch中的学习率衰减及其用法详解
Jun 05 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 用数组降低程序的时间复杂度
2009/12/04 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
2016/07/14 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
jQuery lazyload 的重复加载错误以及修复方法
2010/11/19 Javascript
jquery()函数的三种语法介绍
2013/10/09 Javascript
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
jquery选择器简述
2015/08/31 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
jQuery插件FusionCharts实现的2D饼状图效果【附demo源码下载】
2017/03/03 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
Node.js五大应用性能技巧小结(必须收藏)
2017/08/09 Javascript
简单实现jQuery轮播效果
2017/08/18 jQuery
vue轮播图插件vue-awesome-swiper
2017/11/27 Javascript
vue内置指令详解
2018/04/03 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
Nest.js 授权验证的方法示例
2021/02/22 Javascript
[48:48]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Dream TIME
2014/05/21 DOTA
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
Python内置数据类型详解
2014/08/18 Python
在Python的Django框架中编写错误提示页面
2015/07/22 Python
Python实现包含min函数的栈
2016/04/29 Python
Python random模块用法解析及简单示例
2017/12/18 Python
Django中Model的使用方法教程
2018/03/07 Python
Django实现分页功能
2018/07/02 Python
html5中嵌入视频自动播放的问题解决
2020/05/25 HTML / CSS
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
CNC数控操作工岗位职责
2013/11/19 职场文书
本科毕业生求职自荐信
2014/02/03 职场文书
《在山的那边》教学反思
2014/02/23 职场文书
建设幸福中国演讲稿
2014/09/11 职场文书
幼儿教师师德师风自我剖析材料
2014/09/29 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
党支部意见范文
2015/06/02 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
Python爬虫之爬取哔哩哔哩热门视频排行榜
2021/04/28 Python