我使用的是python2.6.6版本,并编写了从Oracle表读取数据的代码来创建JSON文件,如下所示。你知道吗
#!/usr/bin/python
import json
import cx_Oracle
import collections
from collections import OrderedDict
import sys
import os
import logging
from 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 = []
for 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 is to filter the null columns
pf = OrderedDict((k, v) for (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()
当读取100k记录时,速度非常快,在5秒内完成,但读取1.5 million
数据需要15分钟。
我试着给prows = r_cursor.fetcmany(100000)
然后它很快就完成了,只有100000
个记录,然后就出来了。
您能建议如何读取每次100000
记录的数据,并将其循环用于下一个记录吗。我听说generator
将以这种方式工作。你能告诉我怎么用发电机吗?你知道吗
不是答案,但还是写这个吧?你知道吗
退货:
相关问题 更多 >
编程相关推荐