Python CGI中的JSON转储以尾随点开始

时间:2015-08-05 20:02:46

标签: python json cgi

从run_report返回的数据返回一个python字典,然后将其解析为JSON字符串并打印,以便JSON可以访问它。 run_report函数还会创建一个.json文件,我可以在以后访问该文件:

print "Content-type: application/json\n"
json_data = run_report(sites_list, tierOne, dateFrom, dateTo, filename, file_extension)
print json.dumps(json_data, indent=4, sort_keys=True)

然而,当它打印时,我会收到此输出:

..{
"data": {
    "FR": 1424068
}, 
"tierone": {
    "countries": [
        "US", 
        "BR", 
        ...
    ], 
    "ratio": 100.0, 
    "total": 1424068, 
    "total_countries": 1
}, 
"total": 1424068, 
"total_countries": 1
}

我不明白的是这些尾随点是如何出现的。但是,如果我打开我使用run_report函数创建的.json文件之一并打印读取数据文件,则不显示这些点。

def open_file(file_extension, json_file):
    with open(file_extension + json_file) as data_file:
        data = json.load(data_file)
    return json.dumps(data)

json_data = open_file(file_extension, filename)
    print json_data

1 个答案:

答案 0 :(得分:1)

else 正在生成那些.个字符; json.dumps()函数永远不会添加它们。

确保没有其他内容写入sys.stdout;您发送到sys.stdout的所有内容都会发送到浏览器(默认情况下print会写入sys.stdout

根据您的评论,我了解您希望将更多信息写入服务器日志;不要使用sys.stdout;写信给sys.stderr