Kyl*_*ndt 29 python json ipython-notebook
是否有一种现有的方法可以让json.dumps()输出在ipython笔记本中显示为"漂亮"格式的JSON?
fil*_*mor 49
json.dumps有一个indent参数,打印结果应该足够了:
print(json.dumps(obj, indent=2))
Run Code Online (Sandbox Code Playgroud)
jet*_*com 25
import uuid
from IPython.display import display_javascript, display_html, display
import json
class RenderJSON(object):
def __init__(self, json_data):
if isinstance(json_data, dict):
self.json_str = json.dumps(json_data)
else:
self.json_str = json_data
self.uuid = str(uuid.uuid4())
def _ipython_display_(self):
display_html('<div id="{}" style="height: 600px; width:100%;"></div>'.format(self.uuid), raw=True)
display_javascript("""
require(["https://rawgit.com/caldwell/renderjson/master/renderjson.js"], function() {
document.getElementById('%s').appendChild(renderjson(%s))
});
""" % (self.uuid, self.json_str), raw=True)
Run Code Online (Sandbox Code Playgroud)
以可折叠格式输出数据:
RenderJSON(your_json)
Run Code Online (Sandbox Code Playgroud)
从这里粘贴的副本:https://www.reddit.com/r/IPython/comments/34t4m7/lpt_print_json_in_collapsible_format_in_ipython/
Github:https://github.com/caldwell/renderjson
Kyl*_*ron 23
这可能与OP要求的略有不同,但您可以使用IPython.display.JSON交互式查看JSON/dict对象.
from IPython.display import JSON
JSON({'a': [1, 2, 3, 4,], 'b': {'inner1': 'helloworld', 'inner2': 'foobar'}})
Run Code Online (Sandbox Code Playgroud)
编辑:这适用于Hydrogen和JupyterLab,但不适用于Jupyter Notebook或IPython终端.
内氢:
我只是将扩展变量添加到@Kyle Barron 答案中:
from IPython.display import JSON
JSON(json_object, expanded=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21385 次 |
| 最近记录: |