[英]Fetchmany() loop to write in to multiple files
我有1000條記錄,希望以100條為循環循環並寫入多個文件。 下面的代碼在所有文件中創建相同的數據集。
conn = cx_Oracle.connect('username/password@db')
curs = conn.cursor()
curs.execute('SELECT * FROM TABLE ORDER BY CREATION_TIME')
result = curs.fetchmany(100)
items = [dict(zip([key[0] for key in curs.description], row)) for row in result]
for i in range(10):
with open('C:\\Users\\Output%i.json' % i, 'w') as outfile:
json.dump({'items': items}, outfile, sort_keys=True, indent=1, ensure_ascii=False, default=default)
您需要在循環中調用curs.fetchmany()
,而不是在獲取100行之后放置循環。
i = 0
while True:
result = curs.fetchmany(100)
if len(result) == 0:
break:
items = [dict(zip([key[0] for key in curs.description], row)) for row in result]
with open('C:\\Users\\Output%i.json' % i, 'w') as outfile:
json.dump({'items': items}, outfile, sort_keys=True, indent=1, ensure_ascii=False, default=default)
i += 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.