如何使用Keras model.to_json()获得漂亮的印刷JSON?

时间:2017-07-26 15:00:46

标签: python json keras

我正在尝试save model to JSON with Keras并获得精简的JSON代码。

是否可以在这里保存漂亮的人性化JSON?

3 个答案:

答案 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
    }
}