如何使用Python获取JSON属性的换行符?

问题描述 投票:0回答:1

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'),但仍然不起作用。

python json newline python-sphinx sphinx
1个回答
0
投票
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 代替。

© www.soinside.com 2019 - 2024. All rights reserved.