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检测lvs real server状态
Jan 22 Python
python字符串替换示例
Apr 24 Python
django DRF图片路径问题的解决方法
Sep 10 Python
pycharm运行程序时在Python console窗口中运行的方法
Dec 03 Python
Django REST framework视图的用法
Jan 16 Python
Python学习笔记之函数的定义和作用域实例详解
Aug 13 Python
python Web flask 视图内容和模板实现代码
Aug 23 Python
Python根据服务获取端口号的方法
Sep 25 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
Dec 19 Python
Python读取csv文件实例解析
Dec 30 Python
Tensorflow中的dropout的使用方法
Mar 13 Python
快速解决pymongo操作mongodb的时区问题
Dec 05 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自带的进位制之间的转换函数
2013/06/08 PHP
2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
2014/04/08 PHP
PHP学习笔记(一) 简单了解PHP
2014/08/04 PHP
简单谈谈PHP中strlen 函数
2016/02/27 PHP
php使用PDO执行SQL语句的方法分析
2017/02/16 PHP
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
js带按钮的提示框可供选择示例代码
2013/09/17 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
JavaScript深度复制(deep clone)的实现方法
2016/02/19 Javascript
JS模仿手机端九宫格登录功能实现代码
2016/04/28 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
深入理解JavaScript中的预解析
2017/01/04 Javascript
Servlet3.0与纯javascript通过Ajax交互的实例详解
2018/03/18 Javascript
微信小程序实现简单跑马灯效果
2020/05/26 Javascript
[01:09]DOTA2次级职业联赛 - 99战队宣传片
2014/12/01 DOTA
利用nohup来开启python文件的方法
2019/01/14 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
Python爬虫实现使用beautifulSoup4爬取名言网功能案例
2019/09/15 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
Pycharm 安装 idea VIM插件的图文教程详解
2020/02/21 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
实例讲解CSS3中的border-radius属性
2015/08/18 HTML / CSS
LookFantastic丹麦:英国美容护肤精品在线商城
2016/08/18 全球购物
金融专业毕业生推荐信
2013/11/26 职场文书
2013的个人自我评价
2013/12/26 职场文书
庆元旦文艺演出主持词
2014/03/27 职场文书
广场舞大赛策划方案
2014/05/31 职场文书
大学生操行评语大全
2014/12/31 职场文书
安全承诺书
2015/01/19 职场文书
英文升职感谢信
2015/01/23 职场文书
通讯稿范文
2015/07/22 职场文书
Windows下redis下载、redis安装及使用教程
2021/06/02 Redis