Python:在Jupyter Notebook中漂亮打印

19

我正在尝试在Jupyter Notebook中美化打印一个字典。

我正在使用以下代码:

import pprint
stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
stuff.insert(0, stuff[:])
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(stuff)

然而,按下shift+enter后,没有出现[out]单元格(即我看不到漂亮的打印输出)。

enter image description here

有什么想法为什么会这样/我需要改变什么才能看到漂亮的输出?

编辑:实际上这是一个Python 2.7的问题 - 在3.x中它可以正常工作。有人尝试过在Python 2.7上运行并看到它工作吗?


相同的代码对我来说可以正常工作。我正在使用Python 3.6。 - Ujjwal
@Ujjwal 哦,我明白了 - 我正在使用2.7... 你知道在2.7中什么是正确的语法吗? - jim jarnac
1
我在https://try.jupyter.org/上测试了您的代码,确实显示了输出结果。 - Bemmu
你可以尝试输出 HTML,让它看起来漂亮:https://dev59.com/Al8e5IYBdhLWcg3wfaYy - user1269942
@jimbasquiat 是的,它可以在2.7上运行。 - Rohan
也在这里工作。无法复现。 - OneCricketeer
3个回答

7

无论你开发什么都是正确的,唯一可能的原因是,Jupyter Notebook无法连接到服务器。如果在工具栏中看到像下面图片所示的连接到内核/服务器,请尝试刷新连接或重新加载页面。

enter image description here

我使用相同的代码,我能够看到输出结果。请查看下面的图片。

enter image description here


0
我在使用Python 3时遇到了问题,在我的情况下,通过删除广告拦截扩展程序来解决。不知何故,它正在阻止设置输出的AJAX请求。

0

这个标题不仅适用于Jupyter中的字典,因此我会给出一个通用的答案。

在打印时,更改这个

print(longValue, nextValue)

对此进行测试(必须尝试其他值而不是30)

space = (30-len(longValue)*" "
print(longValue,space,nextValue)

那将会改变这个

enter image description here

转换成这样

enter image description here


使用Python来计算空格更加简单,可以使用以下代码:print("{:30s} {:s} ".format(longVal, nextVal)) - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接