1.脚本实现背景
该脚本的目的是,为了把期望数据转换成json数据,为之前代理脚本获取的实时数据进行对比!为实现数据自动化对比做铺垫!
原有的数据csv中数据格式如下所示:
上图中颜色圈起来的部分作为一个数据项,会整理整格式如下所示的:
2.脚本源代码
脚本名是readDataToDic.py
#coding=utf8
import csv
import logging
'''
Author:ewang
Data:2017/07/12
该模块的主要功能函数:
readDataToList():把csv中的数据,数据项以字典类型存储在列表中。
getAllServiceId():获取所有的serviceId列表
printListData():输出数据list中的每项数据
createDataDic():创建一个数据字典表,以serviceId为key,相同的数据项列表为value
printDicData():输出数据字典中的每项数据
'''
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
datefmt='%a, %d %b %Y %H:%M:%S',
filename='readDate.log',
filemode='w')
class GenExceptData(object):
def __init__(self):
try:
#存放csv中读取的数据
self.mdbuffer=[]
#打开csv文件,设置读的权限
csvHand=open("20170510174450.csv","r")
#创建读取csv文件句柄
readcsv=csv.reader(csvHand)
#把csv的数据读取到mdbuffer中
for row in readcsv:
self.mdbuffer.append(row)
#把数据穿件为为字典类型的
except Exception,e:
logging.error("Read Excel error:"+e)
finally:
#关闭csv文件
csvHand.close()
def readDataToList(self):
try:
#在数组最后添加一个空白行
#该行的作用是为了成功获取最后一条json数据
#在数组endLine添加空白字符
endLine=[" " for num in range(len(self.mdbuffer[1])) if num>=0]
#把以空字符的endLine添加到末尾
sel