[英]How to get the pprint output as string and not printed on stdout?
在 python 3.6.8 中,我希望pprint
的输出没有打印到屏幕上(例如stdout
),但我希望该输出作为变量中的字符串。
我尝试了以下(完整示例):
import io
import pprint
d = {'cell_type': 'code',
'execution_count': None,
'metadata': {'collapsed': True, 'trusted': True},
'outputs': []
}
f = io.StringIO()
pprint.pprint(dict, f)
print(f.read())
但我刚得到一个空字符串。 我期待一个输出
{'cell_type': 'code',
'execution_count': None,
'metadata': {'collapsed': True, 'trusted': True},
'outputs': []}
反而。
也许有一种更简单的方法可以在没有流的情况下实现这一目标?
最后我想比较两个非常复杂的词典,看看它们的区别。 我的想法:生成 dict 的字符串版本并进行比较(与 bash diff
类的东西)。
您在阅读之前没有移动文件指针。
f = io.StringIO()
pprint.pprint(d, f) # note: pass d and not dict
f.seek(0) # move pointer to start of file
print(f.read())
要不就
print(f.getvalue())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.