有没有一种现有的方法可以让json.dumps()
输出在 ipython 笔记本中显示为“漂亮”格式的 JSON?
问问题
51556 次
6 回答
90
json.dumps
有一个indent
论点,打印结果应该足够了:
print(json.dumps(obj, indent=2))
于 2013-09-18T13:08:02.557 回答
63
这可能与 OP 所要求的略有不同,但您可以使用它IPython.display.JSON
以交互方式查看 JSON/dict
对象。
from IPython.display import JSON
JSON({'a': [1, 2, 3, 4,], 'b': {'inner1': 'helloworld', 'inner2': 'foobar'}})
编辑:这适用于 Hydrogen 和 JupyterLab,但不适用于 Jupyter Notebook 或 IPython 终端。
内部氢气:
于 2018-07-31T15:09:25.537 回答
37
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)
要以可折叠格式输出数据:
RenderJSON(your_json)
从这里复制粘贴:https ://www.reddit.com/r/IPython/comments/34t4m7/lpt_print_json_in_collapsible_format_in_ipython/
于 2016-05-09T19:47:14.857 回答
5
我只是将扩展变量添加到@Kyle Barron 答案:
from IPython.display import JSON
JSON(json_object, expanded=True)
于 2018-09-07T20:26:52.043 回答
3
我发现这个页面正在寻找一种方法来消除\n
输出中的文字 s。我们正在使用 Jupyter 进行编码面试,我想要一种方法来显示函数的结果,例如. 我的 Jupyter (4.1.0) 版本不会将它们呈现为实际的换行符。我产生的解决方案是(我有点希望这不是最好的方法,但是......)
import json
output = json.dumps(obj, indent=2)
line_list = output.split("\n") # Sort of line replacing "\n" with a new line
# Now that our obj is a list of strings leverage print's automatic newline
for line in line_list:
print line
我希望这可以帮助别人!
于 2016-04-29T14:42:53.133 回答
0
对于 Jupyter 笔记本,可能足以生成在新选项卡中打开的链接(使用 Firefox 的 JSON 查看器):
from IPython.display import Markdown
def jsonviewer(d):
f=open('file.json','w')
json.dump(d,f)
f.close()
print('open in firefox new tab:')
return Markdown('[file.json](./file.json)')
jsonviewer('[{"A":1}]')
'open in firefox new tab:
于 2021-10-22T23:38:20.173 回答