最近、djangoの使用方法を学び、ユーザーが収集デッキを作成できるようにするWebサイトを作成しました。この質問はPythonだけではなく、djangoフレームワーク自体に関連しています。Pythonが大規模なjsonファイルを反復する
とにかく私はMTG用の約200セットを含む巨大なjsonファイルを解析しようとしており、各セットには複数のカードがあり、そのカードには下の画像からも分かるように複数のタイプがあります。 。これで、すべてのデータを解析し、現在のwhayイムは、このようなループのために使用される
:
def InsertFormats():
json_object = setJson()
for sets in json_object:
for cards in json_object[sets]['cards']:
if 'legalities' in cards:
for legalities in cards['legalities']:
cardFormat = legalities['format']
legalType = legalities['legality']
obj, created = CardFormat.objects.get_or_create(cardFormat=cardFormat)
obj, created = LegalTypes.objects.get_or_create(legalType=legalType)
しかし、これで問題はそれだけでランダムにこのエラー
でタイムアウトになるということです終了コード-1073741819で終了したプロセス
これは、この関数が作成している反復の量によって発生していると仮定しています。私はこのようにjsonオブジェクトから私のデータベースにデータを挿入するための複数の関数を持っています。
大きなjsonオブジェクトを繰り返し処理する方法はありますか?多くのループを通過するだけで、必要なデータに到達するか、atleastするとクラッシュすることはありませんか?
はStackOverflowのへようこそ。画像を投稿しないでください。興味のある人が試してみることができるように、あなたのjsonのサンプルを投稿してください。 – e4c5
これはおそらくメモリ割り当てエラーです(Pythonの反復回数に制限はありません)。可能なソリューションについては、次の記事を参照してください。[pythonで大きなjsonファイルを読み込むためのメモリ効率的で高速な方法はありますか?](http://stackoverflow.com/questions/2400643/is-there-a-memory-efficient-and-ファースト・ウェイ・ツー・ロード・ビッグ・ジョーン・ファイル・イン・パイソン) – miraculixx