我正在尝试save model to JSON with Keras并获得精简的JSON代码。
是否可以在这里保存漂亮的人性化JSON?
答案 0 :(得分:7)
来自keras的to_json
method已接受**kwargs
并将其传递给json.dumps
。因此,这是一线解决方案:
print(model.to_json(indent=4))
它产生类似于@ anton-vbr。
的结果答案 1 :(得分:2)
您可以使用pprint.pformat
检索漂亮的字符串:
import pprint
json_str = model.to_json()
formatted_str = pprint.pformat(json.loads(json_str), indent=4)
如果您不想保存格式化json的副本,而是希望将其保存到文件中,则可以使用pprint.pprint
并使用文件处理程序指定stream=...
:< / p>
pprint.pprint(json.loads(json_str), indent=1, stream=open('model.json', 'w'))
答案 2 :(得分:0)
您可以使用json库。 文档:https://docs.python.org/3.6/library/json.html
import json
json_str = model.to_json()
print(json.dumps(json.loads(json_str),indent=4))
将其保存到文件:
import json
json_str = model.to_json()
with open("output.json", "w") as f:
json.dump(json.loads(json_str), f, indent=4)
来自pandas的示例数据框:
datetime temp weather
2017-07-27 02:00:00 22.94 light rain
2017-07-27 05:00:00 21.74 clear sky
2017-07-27 08:00:00 21.10 light rain
2017-07-27 11:00:00 27.69 clear sky
结果:
{
"weather": {
"1501131600000": "clear sky",
"1501153200000": "clear sky",
"1501142400000": "light rain",
"1501120800000": "light rain"
},
"temp": {
"1501131600000": 21.74,
"1501153200000": 27.69,
"1501142400000": 21.1,
"1501120800000": 22.94
}
}