web-dev-qa-db-ja.com

IPython NotebookでのかなりのJSONフォーマット

json.dumps()出力をipythonノートブック内の「かなり」フォーマットされたJSONとして表示する既存の方法はありますか?

34
Kyle Brandt

json.dumpsにはindent引数があり、結果を出力するだけで十分です:

print(json.dumps(obj, indent=2))
60
filmor

これは、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ターミナルでは機能しません。

内部 水素

enter image description hereenter image description here

26
Kyle Barron
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/

Github: https://github.com/caldwell/renderjson

このページでは、出力からリテラル\nsを削除する方法を探していました。私たちは、Jupyterを使用してコーディングインタビューを行っています。私は、関数の結果を表示する方法を求めていましたreal perty like。私のバージョンのJupyter(4.1.0)では、実際の改行としてレンダリングされません。私が作成した解決策は次のとおりです(これがnotが最善の方法ですが...)

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

これが誰かに役立つことを願っています!

2
John Carrell

私は拡張された変数を@Kyle Barronの回答に追加しています:

from IPython.display import JSON
JSON(json_object, expanded=True)
1
Joe Cabezas