Python-将JSON数据写入文件

时间:2019-05-09 11:50:41

标签: python json

我有一个生成JSON输出的Python函数。我试图看看如何将其写入文件。

{'logs': ['3982f208'], 'events': [{'sequence_number': 06972977357, 'labels': [], 'timestamp': 1556539666498, 'message': 'abc [2015-12-19 12:07:38.966] INFO [b5e04d2f5948] [ProcessController] PRMS: {"MessageType"=>"TYPE1", "Content"=>{"Name"=>"name1", "Country"=>"europe", "ID"=>"345", "Key1"=>"634229"}}}

我尝试了以下方法:

def output():   <-- This function returns the above JSON data
    json_data()

我尝试编写它,但是创建了一个新函数,如下所示:

def write():
    f = open('results.txt', 'a'). <<- Creates the text file
    f.write(json_data)
    f.close()

这只会创建一个空文件。任何人都可以建议我如何将JSON数据写入文件。

2 个答案:

答案 0 :(得分:0)

output()函数不返回任何内容,它需要一个return语句:

def output():
    return json_data():

write()函数需要调用output()函数。

def write():
    with open("results.txt", "a") as f:
        f.write(output())

答案 1 :(得分:0)

如果您想使用json软件包,我认为这可行:

import json
json_src = """{'logs': ['3982f208'], 'events': [{'sequence_number': 06972977357, 'labels': [], 'timestamp': 1556539666498, 'message': 'abc [2015-12-19 12:07:38.966] INFO [b5e04d2f5948] [ProcessController] PRMS: {"MessageType"=>"TYPE1", "Content"=>{"Name"=>"name1", "Country"=>"europe", "ID"=>"345", "Key1"=>"634229"}}}"""

# Can be wrapped in your write() function if you so choose
with open("results.txt", "a") as file:
  json.dump(json_src, file)