Python code is taking very long time while creating JSON file -
i using python 2.6.6 version , wrote code create json file reading data oracle table shown below.
#!/usr/bin/python import json import cx_oracle import collections collections import ordereddict import sys import os import logging datetime import datetime connstr = u'username/password@dbname' conn = cx_oracle.connect(connstr) r_cursor = conn.cursor() r_cursor.execute("sql query") prows = r_cursor.fetchall() objects_list = [] prow in prows: p = collections.ordereddict() p['col1'] = prow[0] p['col2'] = prow[1] p['col3'] = prow[2] p['col4'] = prow[3] p['col5'] = prow[4] #this filter null columns pf = ordereddict((k, v) (k, v) in p.iteritems() if v not in ('none', none)) objects_list.append(pf) if len(objects_list)>0: ef['name'] = objects_list else: pass j = json.dumps(ef,indent=2) objects_file = 'filename.js' f = open(objects_file,'w') print >> f,j conn.close() f.close() when reading 100 k records fast , completing in 5 secs when reading data 1.5 million taking 15 mins. tried giving prows = r_cursor.fetcmany(100000) completed fast 100000 records , coming out. please suggest how read data each time 100000 records , loop next records. heard generator work on way. please suggest how use generator here?
not answer how writing instead too?
prow = [none, 1, 2, 3, 4] collections.ordereddict(('col{}'.format(i+1), prow[i]) in range(5) if prow[i] not in ("none",none)) returns:
ordereddict([('col2', 1), ('col3', 2), ('col4', 3), ('col5', 4)])
Comments
Post a Comment