2016-12-01 10 views
0

私はdictとして出てくる数千のhtmlファイルを解析しています。次に、それらを1つのdictとして結合し、json形式でディスクに保存します。オンザフライでjsonファイルに追加する方法は?

ファイルを繰り返し処理している間にこの巨大なdictを作成したくないので、私はむしろファイルの更新/書き込みを続けます。

ので、代わりにこの:

with open('out_file.json', 'w') as f: 
    for e, fn in enumerate(os.listdir(path)): 
     fp = os.path.join(path, fn) 
     d = html_to_dict(fp) 
     # update the file dict 

任意のアイデア:

data = {} 
for e, fn in enumerate(os.listdir(path)): 
    fp = os.path.join(path, fn) 
    d = html_to_dict(fp) 
    data[e] = d 

私はこれをしたいと思いますか?

答えて

2

自分でJSONの一部を書き、個々のレコードにjsonライブラリを使用するだけで、これを行うことができます。たとえば、次の

あなたの代わりにオブジェクトの配列を作成し、キーに必要なスペースを節約することができ、この場合には
with open('out_file.json', 'w') as f: 
    f.write("{") 
    delim = "" 
    for e, fn in enumerate(os.listdir(path)): 
     fp = os.path.join(path, fn) 
     d = html_to_dict(fp) 
     f.write(delim + str(e) + ":") 
     json.dump(d, f) 
     delim = ",\n" 
    f.write("}") 

with open('out_file.json', 'w') as f: 
    f.write("[") 
    delim = "" 
    for fn in os.listdir(path): 
     fp = os.path.join(path, fn) 
     d = html_to_dict(fp) 
     f.write(delim) 
     json.dump(d, f) 
     delim = ",\n" 
    f.write("]") 
関連する問題