腌制字典的大CSV

时间:2017-12-30 00:05:38

标签: python csv dictionary serialization pickle

我有一个1 GB的CSV文件(16-char-max-string;int

hello;1798732      
you;1762
...

解析为dict的速度很慢,这就是为什么我想执行一次,将其另存为pickle文件(或任何其他序列化方法),然后重新打开这个已经处理过的文件供进一步使用。

我试过了:

import csv, time
import cPickle as pickle

d = dict()

start = time.time()

with open('mycsv.csv', mode='r') as f:
    reader = csv.reader(f, delimiter=';')
    for r in reader:
        d[r[0]] = int(r[1])

print time.time() - start

with open('mydict', 'wb') as f:
    pickle.dump(d, f)

但它确实不起作用:我使用Python 64位来做,但我看到在此过程中内存使用量爆炸超过4 GB! (然后更多,它几乎崩溃了我的电脑)。

如何以更经济的RAM方式将此CSV文件解析为序列化的dict

0 个答案:

没有答案