使用yield流式传输到JSON文件

时间:2015-01-27 19:52:37

标签: python json dictionary

我有一个函数读取一个读取块的文件,并在每次迭代后返回以下内容。

def foo_now():
    for file in all_files:
        key_id, final_text = readChunk(file)
        yield {
            key_id : {
                'desc': final_text
            }
        }

Ealier我将所有这些返回的词典存储到一个字典中,并使用以下方法将整个字典转储到JSON文件中:

def foo_earlier():
    temp_dict = dict()
    for file in all_files:
        key_id, final_text = readChunk(file)
        temp_dict.update({key_id : {'desc': final_text}})
    return temp_dict

def saveJSON(filename, data):
    with open(filename, 'wb') as outfile:
        json.dump(data, outfile)
    print "Data saved in " + filename

saveJSON("file.json", foo_earlier())

但现在我想逐个转储每个字典,因为它是使用foo_now()从文件中读取的。我该怎么做?

1 个答案:

答案 0 :(得分:3)

for item in foo_now():
    with open("my_out.json","ab") as f:
        json.dump(item,f)

with open("my_out.json","ab") as f:
    for item in foo_now():
        json.dump(item,f)