我知道如何使用空格转储JSON字符串。这是我目前用来美化和转储JSON字符串的命令:
json.dump(data, open('dev_integrated.json', 'w'), sort_keys=True, indent=4, separators=(',', ': '))
我想知道是否有办法指定1个标签的缩进而不是4个空格。我无法在任何地方查看文档。
感谢。
答案 0 :(得分:14)
对于python 2.7,有一种使用正则表达式的解决方法:
import re
dump = json.dumps(data, sort_keys=True, indent=4, separators=(',', ': '))
#Replaces spaces with tab
new_data = re.sub('\n +', lambda match: '\n' + '\t' * (len(match.group().strip('\n')) / 3), dump)
json.dump(new_data, open('dev_integrated.json', 'w')
这适用于Python 3.2 +
来自文档:
如果indent是非负整数或字符串,那么JSON数组元素和对象成员将使用该缩进级别进行漂亮打印。缩进级别0,负数或“”仅插入换行符。无(默认值)选择最紧凑的表示。使用正整数缩进缩进每个级别的许多空格。如果indent是一个字符串(例如“\ t”),则该字符串用于缩进每个级别。
json.dump(jString, open('dev_integrated.json', 'w'), sort_keys=True, indent='\t', separators=(',', ': '))