当我将数据保存到json文件时,它将如下所示:
{'Gri33415': ['Griffiths', 2015, 'Gold', 35, 35000], 'Smi22316': ['Smith', 2016, 'Silver', 3, 7500], 'Mia56213': ['Miah', 2013, 'Platinum', 140, 165000]}
我怎么希望每个键都在这样的不同行:
{"Gri33415": ["Griffiths", 2015, "Gold", 35, 40000],
"Smi22316": ["Smith", 2016, "Silver", 3, 7500],
"Mia56213": ["Miah", 2013, "Platinum", 140, 165000]}
答案 0 :(得分:1)
来自官方文档:Pretty printing
>>> import json
>>> print json.dumps({'4': 5, '6': 7}, sort_keys=True,
... indent=4, separators=(',', ': '))
{
"4": 5,
"6": 7
}
编辑1
如果你只想要换行的新行(例如不是每个逗号之后),你可以通过一些聪明的正则表达式技巧解决这个问题。 Live Demo
import json
import re
s = json.dumps({'4': 5, '6': [1, 2, 3, 4]}, sort_keys=True)
s = re.sub(r',\s*"', ',\n"', s)
s = '{\n' + s[1:-1] + '\n}'
print(s)
答案 1 :(得分:0)
当你写出来获得漂亮的打印输出文件时,可以添加indent
选项。
import json
with open('your_file.json', 'r') as infile:
data = json.load(infile)
with open('new_json.json', 'w') as outfile:
outfile.write(json.dumps(data, indent=4, sort_keys=True))