csv文件如下,需要读取其中的数据,并将其中的数据封装成[dict],也就是list中包含一条条dict数据
csv文件自己准备吧,随处可见的,自己创一个就行,代码如下,都是自己写的
import pdbimport zipfileimport csvfrom io import StringIOupf_zip = zipfile.ZipFile('/home/raypick/teststh/5GC_GD_HUAWEI.zip')upf_csv_stream = upf_zip.read('5GC_GD_HUAWEI/CM/0921/UPF_0921_V.csv')data_reader = csv.reader(StringIO(upf_csv_stream.decode('utf-8'), newline=''))# 读取的csv文件内容转换成listcsv_list = list(data_reader)# 获取csv的第一列为dict的key值key_list = csv_list[0]# 将csv取出的数据处理成dict形式dict_list = []for value in range(1, len(csv_list)):# dict必须声明在此位置,后面的dict_list.append()时里面的dict是不同的对象,若声明全局变量,那dict_list中的dict的指针全是指向同一个对象,值完全一致csv_dict = {}for item in range(0, len(key_list)):# 向dict中添加key和valuecsv_dict[key_list[item]] = csv_list[value][item]# 将处理完成的dict追加到dict_list中dict_list.append(csv_dict)pdb.set_trace()
-10-14更新
读取压缩包下所有文件,并筛选符合条件的文件进行批量获取数据
import pdbimport zipfileimport csvfrom io import StringIOdef get_data_from_csv(csv_path):upf_csv_stream = upf_zip.read(csv_path)data_reader = csv.reader(StringIO(upf_csv_stream.decode('utf-8'), newline=''))# 读取的csv文件内容转换成listcsv_list = list(data_reader)# 获取csv的第一列为dict的key值key_list = csv_list[0]# 将csv取出的数据处理成dict形式dict_list = []for value in range(1, len(csv_list)):# dict必须声明在此位置,后面的dict_list.append()时里面的dict是不同的对象,若声明全局变量,那dict_list中的dict的指针全是指向同一个对象,值完全一致csv_dict = {}for item in range(0, len(key_list)):# 向dict中添加key和valuecsv_dict[key_list[item]] = csv_list[value][item]# 将处理完成的dict追加到dict_list中dict_list.append(csv_dict)return dict_listpdb.set_trace()upf_zip = zipfile.ZipFile('/home/raypick/teststh/5GC_GD_HUAWEI1.zip')# file_name_list = upf_zip.namelist()file_name_list = [item for item in upf_zip.namelist() if item.endswith('.csv') & item.__contains__('CM') & item.__contains__('UPF')]dict_list = []for path in file_name_list:dict_list.extend(get_data_from_csv(path))pdb.set_trace()