基于 Erve1879的帖子,进一步开发。
此解决方案没有尾随括号。
将此处给出的自定义exec指令添加到您的Sphinx .conf文件中,然后在您想要打印字典的.rst文件中,像下面RST部分所示那样进行操作。
textwrap.indent被用来缩进所需的字典内容。
data = pad + 'STYLE_PARTS = ' + data.lstrip()
此行从数据开头删除填充。请参见下面OUTPUT的第一行。
另请参阅:
使用textwrap
RST
config
======
.. automodule:: config
:members:
:exclude-members: STYLE_PARTS
.. exec::
import json
import textwrap
from config import STYLE_PARTS
pad = ' '
cb = '.. code-block:: python\n\n'
data = json.dumps(STYLE_PARTS, sort_keys=True, indent=4)
data = textwrap.indent(text=data, prefix=pad)
data = pad + 'STYLE_PARTS = ' + data.lstrip()
cb = cb + data
print(cb)
输出
STYLE_PARTS = {
"0": "00",
"1": "01",
"2": "02",
"3": "03",
"4": "04",
"5": "05",
"6": "06",
"7": "07",
"8": "08",
"9": "09",
"bold": "BOLD",
"continuance": "CONTINUANCE",
"contract": "CONTRACT"
}
{
括号字符渲染出了代码块。有什么想法可以修复这个问题吗? - jsmedmarpprint
标准库模块来直接漂亮地打印本地数据结构,而不是将其序列化和反序列化为JSON。 - Freso