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中Collection的使用小技巧
Aug 18 Python
零基础写python爬虫之urllib2中的两个重要概念:Openers和Handlers
Nov 05 Python
python实现反转部分单向链表
Sep 27 Python
解决sublime+python3无法输出中文的问题
Dec 12 Python
python+selenium实现QQ邮箱自动发送功能
Jan 23 Python
Python OpenCV利用笔记本摄像头实现人脸检测
Aug 20 Python
Python整数对象实现原理详解
Jul 01 Python
python如何统计代码运行的时长
Jul 24 Python
python3实现微型的web服务器
Sep 03 Python
浅析Python打包时包含静态文件处理方法
Jan 15 Python
在python3.9下如何安装scrapy的方法
Feb 03 Python
Pandas自定义选项option设置
Jul 25 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语法(5)
2006/10/09 PHP
提高PHP编程效率的53个要点(经验小结)
2010/09/04 PHP
关于php中一些字符串总结
2016/05/05 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
php生成短网址/短链接原理和用法实例分析
2020/05/29 PHP
javascript concat数组累加 示例
2009/09/03 Javascript
jQuery Ajax使用 全解析
2010/12/15 Javascript
vueJS简单的点击显示与隐藏的效果【实现代码】
2016/05/03 Javascript
Node.js实现文件上传
2016/07/05 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
javascript 注释代码的几种方法总结
2017/01/04 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
2018/11/29 Javascript
python网络编程实例简析
2014/09/26 Python
python计算一个序列的平均值的方法
2015/07/11 Python
Python读取网页内容的方法
2015/07/30 Python
python中装饰器级连的使用方法示例
2017/09/29 Python
Python实现的读取文件内容并写入其他文件操作示例
2019/04/09 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
django的csrf实现过程详解
2019/07/26 Python
使用Python 自动生成 Word 文档的教程
2020/02/13 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
python 实现Requests发送带cookies的请求
2021/02/08 Python
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
描述内存分配方式以及它们的区别
2016/10/15 面试题
创建索引时需要注意的事项
2013/05/13 面试题
皮肤科医师岗位职责
2013/12/04 职场文书
教师自荐信范文
2013/12/09 职场文书
实习心得体会
2014/01/02 职场文书
贯彻学习两会心得体会范文
2014/03/17 职场文书
罚款通知怎么写
2015/04/22 职场文书
不同意离婚答辩状
2015/05/22 职场文书
初中开学典礼新闻稿
2015/07/17 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android