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之入门(五)缩进和选择
May 27 Python
详解Django缓存处理中Vary头部的使用
Jul 24 Python
python编程开发之类型转换convert实例分析
Nov 13 Python
Python中使用支持向量机(SVM)算法
Dec 26 Python
Python中实现变量赋值传递时的引用和拷贝方法
Apr 29 Python
利用Python写一个爬妹子的爬虫
Jun 08 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
Dec 21 Python
python elasticsearch从创建索引到写入数据的全过程
Aug 04 Python
Django中的cookie和session
Aug 27 Python
tornado+celery的简单使用详解
Dec 21 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
Feb 26 Python
使用Python Tkinter实现剪刀石头布小游戏功能
Oct 23 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实现懒加载的方法
2015/03/07 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
img标签中onerror用法
2009/08/13 Javascript
JS命名空间的另一种实现
2013/08/09 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
JavaScript实现的背景自动变色代码
2015/10/17 Javascript
AngularJS基础 ng-mouseleave 指令详解
2016/08/02 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
JS自定义函数实现时间戳转换成date的方法示例
2017/08/27 Javascript
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
关于单文件组件.vue的使用
2018/09/20 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
extjs图形绘制之饼图实现方法分析
2020/03/06 Javascript
JQuery省市联动效果实现过程详解
2020/05/08 jQuery
Vue Router中应用中间件的方法
2020/08/06 Javascript
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
python下载文件记录黑名单的实现代码
2017/10/24 Python
django使用html模板减少代码代码解析
2017/12/12 Python
Python中defaultdict与lambda表达式用法实例小结
2018/04/09 Python
python3.6下Numpy库下载与安装图文教程
2019/04/02 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
Python基于Socket实现简易多人聊天室的示例代码
2020/11/29 Python
python爬取youtube视频的示例代码
2021/03/03 Python
css 元素选择器的简单实例
2016/05/23 HTML / CSS
Bogner美国官网:滑雪服中的”Dior”
2018/01/30 全球购物
美国家居装饰网上商店:Lulu & Georgia
2019/09/14 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
药学专业毕业生求职信
2013/10/20 职场文书
旷课检讨书3000字
2014/02/04 职场文书
员工生日活动方案
2014/08/24 职场文书
群众路线自我剖析材料
2014/10/08 职场文书
计算机实训报告总结
2014/11/05 职场文书
计划生育目标责任书
2015/05/09 职场文书
环保建议书作文300字
2015/09/14 职场文书
总结几个非常实用的Python库
2021/06/26 Python