我有一个生成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数据写入文件。
答案 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)