python把csv数据以列表、字典类型的数据进行存储脚本。脚本中有明确的注释,方便理解,关于操作的csv样式,可以查看,我之前的关于该脚本的博客链接:http://blog.csdn.net/henni_719/article/details/75007233
readDataToDic_V2.2.py
#coding=utf8
import csv
import logging
import os
'''
Author:ewang
Data:2017/07/18
该模块的主要功能函数:
readDataToList():把csv中的数据,数据项以字典类型存储在列表中。
__propertyValueList(propetryName):创建不同属性值列表
getAllServiceId():获取所有的serviceId列表
getAllsrcPage():获取所有srcPage列表
getAllsrcPageId():获取所有srcPageId列表
getAllsrcModule():获取所有srcModule列表
getAllitem(): 获取所有item列表
getAllitemId():获取所有itemId列表
getAllsrcPosition():获取所有srcPosition列表
getAllmemberType():获取所有memberType列表
getAlleventGroup():获取所有eventGroup列表
getAllalbumType():获取所有albumType列表
getAllsrcSubModule():获取所有srcSubModule列表
getAlltype():获取所有type列表
getAllfunction():获取所有function列表
getAllshareType():获取所有shareType列表
printListData(dataList):输出给定数据list中的每项数据
__createDataDic(properyName,propetyList):创建一个数据字典表
get_ServiceId_DataDic():创建一个数据字典表,以serviceId为key,相同的数据项列表为value
get_srcPage_DataDic():创建一个数据字典表,以srcPage为key,相同的数据项列表为value
get_srcPageId_DataDic():创建一个数据字典表,以srcPageId为key,相同的数据项列表为value
get_srcModule_DataDic():创建一个数据字典表,以srcModule为key,相同的数据项列表为value
get_item_DataDic():创建一个数据字典表,以item为key,相同的数据项列表为value
get_itemId_DataDic():创建一个数据字典表,以itemId为key,相同的数据项列表为value
get_srcPosition_DataDic():创建一个数据字典表,以srcPosition为key,相同的数据项列表为value
get_memberType_DataDic():创建一个数据字典表,以memberType为key,相同的数据项列表为value
get_eventGroup_DataDic():创建一个数据字典表,以eventGroup为key,相同的数据项列表为value
get_albumType_DataDic():创建一个数据字典表,以albumType为key,相同的数据项列表为value
get_srcSubModule_DataDic():创建一个数据字典表,以srcSubModule为key,相同的数据项列表为value
get_type_DataDic():创建一个数据字典表,以type为key,相同的数据项列表为value
get_function_DataDic():创建一个数据字典表,以function为key,相同的数据项列表为value
get_shareType_DataDic():创建一个数据字典表,以shareType为key,相同的数据项列表为value
printDicData(propertydic):输出数据字典中的每项数据
getDicDataValue(PropertyValue,dataDic):获取字典指定键对应的返回值列表
'''
PATH=lambda p:os.path.abspath(os.path.join(
os.path.dirname(__file__), p))
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=PATH('../Log/readDate.log'),
filemode='w')
class GenExceptData(object):
def __init__(self,filePah=PATH("../LastCSV/20170510174450.csv")):
try:
#存放csv中读取的数据
self.mdbuffer=[]
#打开csv文件,设置读的权限
csvHand=open(filePah,"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添加到末尾
self.mdbuffer.append(endLine)
#获取mdbuffer中的元素个数
rowNumber=len(self.mdbuffer)
#设置当前行号
currentrow=1
#设置json数据的属性值
propertyJson={}
#读取列表中的元素
dataLis