mardi 4 août 2015

Reading specific columns from CSV Python

I am trying to parse through a CSV file and extract few columns from the CSV.

ID | Code | Phase |FBB | AM | Development status | AN REMARKS | stem | year |   IN -NAME |IN Year |Company                                                                                                      
L2106538 |Rs124 | 4 | | | Unknown | | -pre- | 1982 | Domoedne | 1982 | XYZ

I would like to group and extract few columns for uploading them to different models.

For example I would like to group first 3 columns to a model, next two to a different model, first column and the 6, 7 to a different model and so on.

I also need to keep the header of the file and store the data as key value pair so that I would know which column should go for a particular field in a model.

This is what I have so far.

def group_header_value(file):
    reader = csv.DictReader(open(file, 'r'))# to have the header and get the data as a key value pair.
    all_result= []
    for row in reader:
        print row
        all_result.append(row)
    return all_result


def group_by_models(all_results):
    MD = range(1,3) # to get the required cols. 
    for every_row in all_results:
        contents = [(every_row[i] for i in MD)]
        print contents

def handle(self, *args, **options):
        database = options.get('database')
        filename = options.get('filename')
        all_results =  group_header_value(filename)
        print 'grouped_bymodel', group_by_models(all_results)

This is what I get when I try to get the contents grouped_by model: at 0x7f9f5382e0f0> at 0x7f9f5382e0a0> at 0x7f9f5382e0f0>

Is there a different approach to extract particular columns in DictReader? how else can I extract required columns using DictReader. Thanks

Aucun commentaire:

Enregistrer un commentaire