使用制表符缩进(不是空格)转储JSON

cs9*_*s95 4 python json python-2.7

我知道如何使用空格转储JSON字符串.这是我目前用来美化和转储JSON字符串的命令:

json.dump(data, open('dev_integrated.json', 'w'), sort_keys=True, indent=4, separators=(',', ': '))
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种方法可以指定缩进1个制表符而不是4个空格.我无法在任何地方查看文档.

谢谢.

Sta*_*ack 16

对于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')
Run Code Online (Sandbox Code Playgroud)

这适用于Python 3.2+

来自Docs:

如果indent是一个非负整数或字符串,那么JSON数组元素和对象成员将使用该缩进级别进行漂亮打印.缩进级别0,负数或""仅插入换行符.无(默认值)选择最紧凑的表示.使用正整数缩进缩进每个级别的许多空格.如果indent是一个字符串(例如"\ t"),则该字符串用于缩进每个级别.

json.dump(jString, open('dev_integrated.json', 'w'), sort_keys=True, indent='\t', separators=(',', ': '))