\

Pythonで大きなJSONファイルを分割する方法について説明します。この記事は、Pythonのijsonモジュールを使用して、大きなJSONファイルを一部ずつ読み込み、要素単位で分割する方法を紹介します。

大きなJSONファイルの分割

大きなサイズのJSONファイルをjsonモジュールで読むと、処理にかなり時間がかかります。しかし、ijsonモジュールを使うと、大きなサイズのJSONファイルが一部ずつ読めます。

以下に、大きなJSONファイルを要素単位で分割し、分割後のファイルをjsonモジュールで読み込めるようにするコードを示します。

import ijson

def save_as_json(string, item, file_path):
    with open(file_path, "w") as f:
        f.write('{\"%s\": %s}' % (string, str(item).replace(\"'\",'\"').replace(\"True\",'true').replace(\"False\",'false').replace(\"None\",'null')))

with open("test.json", "r") as j:
    items = ijson.items(j, "hoge1.item.hoge2")
    i = 1
    for item in items:
        json_file = "%s.json" % i
        save_as_json("hoge2", item, json_file)
        i += 1

このコードは、ijson.itemsを使用してJSONファイルから要素を一つずつ取り出し、それぞれの要素を新しいJSONファイルに保存します。

注意点

このコードは、Pythonの文字列をJSON形式に変換する際に、シングルクォーテーションをダブルクォーテーションに変換し、TrueFalseNoneをそれぞれtruefalsenullに変換しています。これは、Pythonの文字列をJSON形式に変換する際の特性によるもので、意図しない変換を防ぐためにはもう少し丁寧な変換をした方がよいかもしれません。

以上、Pythonで大きなJSONファイルを分割する方法について説明しました。この方法を使えば、大きなJSONファイルを効率的に扱うことができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です