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实现判断数组是否包含指定元素的方法
Jul 15 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
pytorch + visdom 处理简单分类问题的示例
Jun 04 Python
Python爬虫之网页图片抓取的方法
Jul 16 Python
python正则表达式之对号入座篇
Jul 24 Python
pytorch使用Variable实现线性回归
May 21 Python
python3.4+pycharm 环境安装及使用方法
Jun 13 Python
Python中 CSV格式清洗与转换的实例代码
Aug 29 Python
Python算法中的时间复杂度问题
Nov 19 Python
python 读取更新中的log 或其它文本方式
Dec 24 Python
Python爬取酷狗MP3音频的步骤
Feb 26 Python
总结python多进程multiprocessing的相关知识
Jun 29 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
apache mysql php 源码编译使用方法
2012/05/03 PHP
PHP中读取照片exif信息的方法
2014/08/20 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
php实现的树形结构数据存取类实例
2014/11/29 PHP
memcache一致性hash的php实现方法
2015/03/05 PHP
Java 正则表达式学习总结和一些小例子
2012/09/13 Javascript
JS操作select下拉框动态变动(创建/删除/获取)
2013/06/02 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
JS实现的二叉树算法完整实例
2017/04/06 Javascript
Nodejs之http的表单提交
2017/07/07 NodeJs
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
详解angular应用容器化部署
2018/08/14 Javascript
Puppet的一些技巧
2018/09/17 Javascript
node.js +mongdb实现登录功能
2020/06/18 Javascript
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
2015/10/18 Python
Django实现快速分页的方法实例
2017/10/22 Python
详解Python中的正则表达式
2018/07/08 Python
利用pyuic5将ui文件转换为py文件的方法
2019/06/19 Python
python实现图片九宫格分割
2021/03/07 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
浅析PyCharm 的初始设置(知道)
2020/10/12 Python
CSS3动画特效在活动页中的应用
2020/01/21 HTML / CSS
HTML5 与 XHTML2
2008/10/17 HTML / CSS
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
店长岗位职责
2013/11/21 职场文书
大二学期个人自我评价
2014/01/13 职场文书
学校安全教育制度
2014/01/31 职场文书
中学生个人自我评价
2014/02/06 职场文书
垃圾桶标语
2014/06/24 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
群众路线教育实践活动调研报告
2014/11/03 职场文书
运动会开幕式主持词
2015/07/01 职场文书
MySQL非空约束(not null)案例讲解
2021/08/23 MySQL
Win11 BitLocker 驱动器加密
2022/04/19 数码科技
详解CSS3浏览器兼容
2022/12/24 HTML / CSS