JSON 文件:
{
"items": [
{
"item1": "/xyz"
},
{
"item2": "/yzx"
},
{
"item3": "/zxy"
}
]
}
Python 代码:
def funct(request):
input = ''
# Request body
data = maybe_str(request.data())
if data:
if is_json(request.headers.get('Content-Type', '')):
input = json.dumps(data, indent=2, sort_keys=True,
separators=(',', ': '))
else:
input = data
return input
python 函数返回一个格式化字符串,然后将其放入 Sphinx CodeBlock 中。
输出:
{ "items": [ { "item1": "/xyz", "item2": "/yzx", "item3": "/zxy" }, { "item1": "/xyz", "item2": "/yzx", "item3": "/zxy" } ] }
所需输出:
{
"items": [
{
"item1": "/xyz",
"item2": "/yzx",
"item3": "/zxy"
},
{
"item1": "/xyz",
"item2": "/yzx",
"item3": "/zxy"
}
]
}
我尝试使用此
stackoverflow问题中的
.replace('\\n','\n')
,但仍然不起作用。
def funct(request):
input = ''
# Request body
data = maybe_str(request.data())
if data:
if is_json(request.headers.get('Content-Type', '')):
input = json.dumps(data, indent=2, sort_keys=True,
separators=(',', ': '))
else:
input = data
return json.dumps(input, indent=4) # returns prettified json str
这个解决方案在 python3 shell 中适用于我 否则这没有帮助,你可以尝试使用 simplejson、ujson 和 json5,它们也能够格式化 json str。
而且,你最好不要使用“input”作为变量名,因为它是一个保留字。尝试使用 json_input 代替。