Python 如何自定义缩进json转储?

Python 如何自定义缩进json转储?,python,json,python-3.x,dictionary,Python,Json,Python 3.x,Dictionary,我使用indent=2,但我希望第一级缩进为零。例如: 部分代码 json.dump(json_data, json_file, indent=2) 输出 { "a": 1, "b": "2", "list": [ { "c": 3, "d": 4, } ] } 取而代之的是我想要的 { "a":

我使用indent=2,但我希望第一级缩进为零。例如:

部分代码

json.dump(json_data, json_file, indent=2)
输出

{
  "a": 1,
  "b": "2",
  "list": [
    {
      "c": 3,
      "d": 4,
    }
  ]
}
取而代之的是我想要的

{
"a": 1,
"b": "2",
"list": [
  {
    "c": 3,
    "d": 4,
  }
]
}

如评论中所述,这不会造成功能上的差异,您需要定制漂亮的打印。差不多

import json
import textwrap

spam = {"a": 1, "b": "2", 
        "list": [{"c": 3, "d": 4,}]}

eggs = json.dumps(spam, indent=2).splitlines()
eggs = '\n'.join([eggs[0], textwrap.dedent('\n'.join(eggs[1:-1])), eggs[-1]])
print(eggs)
with open('spam.json', 'w') as f:
    f.write(eggs)
输出

{
"a": 1,
"b": "2",
"list": [
  {
    "c": 3,
    "d": 4
  }
]
}

我真的很好奇你的使用案例是什么。@yedpodtrzitko我正在修改JSON用于游戏修改目的,它可以工作,但如果它匹配本机游戏JSON格式会更好JSON不区分空间。任何好的JSON解析器都应该忽略空格。@DYZ我知道,我在之前的评论中已经指定它对我有效,我只希望缩进纯粹用于装饰目的。
JSON
module不能做你想做的事。你必须自己写漂亮的打印机。