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中的localtime()方法使用详解
May 22 Python
python批量替换页眉页脚实例代码
Jan 22 Python
Python、 Pycharm、Django安装详细教程(图文)
Apr 12 Python
python和mysql交互操作实例详解【基于pymysql库】
Jun 04 Python
python 在某.py文件中调用其他.py内的函数的方法
Jun 25 Python
django 微信网页授权登陆的实现
Jul 30 Python
python打印n位数“水仙花数”(实例代码)
Dec 25 Python
Python统计时间内的并发数代码实例
Dec 28 Python
python实现批量修改文件名
Mar 23 Python
PythonPC客户端自动化实现原理(pywinauto)
May 28 Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 Python
Django如何与Ajax交互
Apr 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
php 传值赋值与引用赋值的区别
2010/12/29 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
PHP判断是否微信访问的方法示例
2019/03/27 PHP
Extjs Ext.MessageBox.confirm 确认对话框详解
2010/04/02 Javascript
Js sort排序使用方法
2011/10/17 Javascript
JS实现文字向下滚动完整实例
2015/02/06 Javascript
深入理解js函数的作用域与this指向
2016/05/28 Javascript
文本框只能输入数字的js代码(含小数点)
2016/07/10 Javascript
全面理解闭包机制
2016/07/11 Javascript
Select下拉框模糊查询功能实现代码
2016/07/22 Javascript
node安装--linux下的快速安装教程
2017/03/21 Javascript
理解 javascript 中的函数表达式与函数声明
2017/07/07 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
vue-cli3+ts+webpack实现多入口多出口功能
2019/05/30 Javascript
jquery弹窗时禁止body滚动条滚动的例子
2019/09/21 jQuery
从表单校验看JavaScript策略模式的使用详解
2020/10/17 Javascript
[01:15:44]首部DOTA2纪录片今日23时全网上映
2014/03/19 DOTA
使用Python制作表情包实现换脸功能
2019/07/19 Python
Python简单实现区域生长方式
2020/01/16 Python
python3连接mysql获取ansible动态inventory脚本
2020/01/19 Python
使用Puppeteer爬取微信文章的实现
2020/02/11 Python
Python3 assert断言实现原理解析
2020/03/02 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
Python爬虫之Selenium下拉框处理的实现
2020/12/04 Python
英国航空官网:British Airways
2016/09/11 全球购物
印度服装购物网站:Limeroad
2018/09/26 全球购物
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
教育系毕业生中文求职信范文
2013/10/06 职场文书
中学实习教师自我鉴定
2013/12/12 职场文书
不拖欠农民工工资承诺书
2014/03/31 职场文书
学习雷锋演讲稿
2014/05/10 职场文书
社区平安建设方案
2014/05/25 职场文书
2015年大学班级工作总结
2015/04/28 职场文书
2016继续教育研修日志
2015/11/13 职场文书
《堡垒之夜》联动《刺客信条》 4月7日正式上线
2022/04/06 其他游戏
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers