別のプロジェクトで使用するために、json形式のダミーデータが必要です。数百万のjsonデータをPythonで生成する
from json import dumps
from faker import Faker
import collections
database = []
filename = '1M'
length = 1000000
fake = Faker() # <--- Forgot this
for x in range(length):
database.append(collections.OrderedDict([
('last_name', fake.last_name()),
('first_name', fake.first_name()),
('street_address', fake.street_address()),
('email', fake.email())
]))
with open('%s.json' % filename, 'w') as output:
output.write(dumps(database, indent=4))
print "Done."
このコードは動作しますが、それは非常に遅いです:私は現在、以下のコードでFaker
パッケージを使用しています。私はPyPy
を試しましたが、私は結果によって吹き飛ばされました。私は現在、600万秒で約220MBの100万データを持つjsonファイルを生成することができます。問題は、たとえば、2百万個のデータのように、さらに1200秒後に終了すると予想されるスクリプトで、この例外を越えてスクリプトが実行され、この例外で挨拶されます。MemoryError
私はそれがPYPY_GC_MAX
で何かを持っていると信じていますが、再び2Mファイルは440メガバイトを重くすべきです。
この問題を解決しようとしているうちに、私はまだ生成時間をさらに絞り込む方法を探しています。私はリストの理解を試しました、map()
、結果はforループと同じでした。
おかげ
使用するPythonはどれですか? –
Python 2.7.12 32bits – Be0wulf
あなたは 'OrderedDict'を使う必要がありますか?おそらく時間が増えるでしょう。 –