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多进程通信Queue、Pipe、Value、Array实例
Nov 21 Python
简单谈谈python中的多进程
Nov 06 Python
python实现桌面壁纸切换功能
Jan 21 Python
python3对接mysql数据库实例详解
Apr 30 Python
Python 实现输入任意多个数,并计算其平均值的例子
Jul 16 Python
python爬取百度贴吧前1000页内容(requests库面向对象思想实现)
Aug 10 Python
Python实现的微信红包提醒功能示例
Aug 22 Python
python tkinter canvas使用实例
Nov 04 Python
django 实现简单的插入视频
Apr 07 Python
基于django 的orm中非主键自增的实现方式
May 18 Python
使用Keras画神经网络准确性图教程
Jun 15 Python
pandas求平均数和中位数的方法实例
Aug 04 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与SQL注入攻击[一]
2007/04/17 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
实例详解PHP中html word 互转的方法
2016/01/28 PHP
jQuery 浮动广告实现代码
2008/12/25 Javascript
图像替换新技术 状态域方法
2010/01/28 Javascript
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
2012/02/23 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
jQuery 3.0 的 setter和getter 模式详解
2016/07/11 Javascript
浅谈JS中的bind方法与函数柯里化
2016/08/10 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
2016/09/12 Javascript
微信小程序 action-sheet底部菜单详解
2016/10/27 Javascript
JS及JQuery对Html内容编码,Html转义
2017/02/17 Javascript
ES6中Class类的静态方法实例小结
2017/10/28 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
[01:38:19]夜魇凡尔赛茶话会 第五期
2021/03/11 DOTA
python分割文件的常用方法
2014/11/01 Python
Python返回真假值(True or False)小技巧
2015/04/10 Python
将Python中的数据存储到系统本地的简单方法
2015/04/11 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
python 将日期戳(五位数时间)转换为标准时间
2019/07/11 Python
Python flask框架端口失效解决方案
2020/06/04 Python
html5设计原理(推荐收藏)
2014/05/17 HTML / CSS
营销与策划专业毕业生求职信
2013/11/01 职场文书
工作保证书范文
2014/04/29 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
孝敬父母的活动方案
2014/08/31 职场文书
2014收银员工作总结范文
2014/12/16 职场文书
建立共青团委员会的请示
2019/04/02 职场文书
2019年亲子运动会口号
2019/10/11 职场文书