当前位置: 首页 > 知识库问答 >
问题:

IPython笔记本中漂亮的JSON格式

穆彬郁
2023-03-14

是否有现有的方法获取<code>json。dumps()输出在ipython笔记本中显示为“漂亮”格式的JSON?

共有3个答案

梁承恩
2023-03-14
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

司空皓
2023-03-14

这可能与OP所要求的略有不同,但您可以使用IPython.display.JSON以交互方式查看JSON/dict对象。

from IPython.display import JSON
JSON({'a': [1, 2, 3, 4,], 'b': {'inner1': 'helloworld', 'inner2': 'foobar'}})

编辑:这适用于氢和JupyterLab,但不适用于Jupyter Notebook或IPython终端。

氢气内部:

萧自珍
2023-03-14

json.dumps有一个indent参数,打印结果应该就足够了:

print(json.dumps(obj, indent=2))
 类似资料:
  • 问题内容: 我尝试过,,前者只能打印Unicode版本,而后者却不能打印出漂亮的照片。 问题答案: 您需要使用显示: 它将选择适当的表示形式(text / LaTex / png …),在默认情况下,默认情况下会导入最新版本的IPython(6.0+)显示,仍然建议显式导入它。

  • 我有下面的ipython笔记本代码(标记): 我怎样才能: 左对齐单元格的表格,现在默认为居中

  • 问题内容: 如果有人对JSON的打印非常了解,那么我将不胜感激! 我正在使用以下功能将JSON字符串移动到文件中,以将复杂的python字符串转换为JSON格式: 问题是我遇到了方括号的语法错误,因为这对我来说是个新话题,我不知道该如何解决。我需要的JSON格式如下: 我正在使用Google Visualization API,您可能对此比较熟悉,但是我需要动态图。上面的代码是API创建图形所需的

  • Jupyter笔记本(Python)以漂亮的打印格式返回单元格中最后一个变量的值。 使用打印(df)不会将数据框打印得很好。但这会很好地打印到Jupyter笔记本上: 如何以漂亮的打印格式打印多个变量? 这里只会以漂亮的打印格式打印: 答案如下(摘自:在iPython笔记本中将数据框显示为表)

  • 我努力想喜欢IPython笔记本,但可能是因为我太习惯于用vi编写代码并在命令行执行,所以我发现它的一些默认设置很有挑战性。可以对以下内容做些什么(可能在某个配置文件中)? 我希望默认输出行号,而不必记住,也不必每次都设置别名。 我如何设置默认为"off",以阻止IPython污染我的命名空间与它的非百分比魔法和shell命令?我知道我可以使用选项和选项:是否有等效的选项? 让我抓狂的是,我从来都

  • 我运行一个iPython笔记本服务器,希望用户能够下载一个作为csv文件的pandas dataframe,这样他们就可以在自己的环境中使用它。没有个人数据,所以如果解决方案包括在服务器上编写文件(我可以这样做),然后下载该文件,我很乐意这样做。

  • 问题内容: 我正在使用内联模式下的IPython Notebook和plot命令绘制一个NumPy值数组。 结果输出为: 然后,我的图显示在这些输出线的下方。 有没有办法只显示图并从输出中隐藏? 问题答案: 您可以使用分号结束行。这样可以在生成图时抑制不必要的输出: 通常,使用分号可以阻止IPython从代码块的该行打印任何输出值。例如,执行包含代码的单元将不会输出。 另一种方法是将变量绑定到图:

  • 问题内容: 我使用以下代码将a漂亮地打印到JSON中: 输出: 这有点 太多了 (每个列表元素的换行!)。 我应该使用哪种语法: 代替? 问题答案: 几年后,我找到了带有内置模块的解决方案: 输出: