簡體   English   中英

Fetchmany()循環寫入多個文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM