JSON dumps indent tab

5

我使用Python 2.7,想要将JSON.dumps()的缩进方式从空格改为TAB。当你设置indent=8时,它会插入8个空格,但我想要插入2个制表符。据我所知,Python 3.3可以通过设置indent="\t\t"来实现,但我们使用的是Python 2.7。


为什么不在转储后进行正则表达式替换? - Robby Cornelissen
2个回答

6

使用 re.sub(),你可以做到以下操作:

dump = json.dumps(data, indent=4)
tabs = re.sub('\n +', lambda match: '\n' + '\t' * (len(match.group().strip('\n')) / 2), dump)

/ 2 不匹配缩进空格的数量,应该是4个。并且使用//代替/。但是当json.dumps使用indent=1时,这种除法是不必要的。 此外,在模式开头使用^和flags=re.MULTILINE可以避免对\n的搜索。 - hubalazs

1

参数indent可以是一个字符串。因此,这将起作用。

dump = json.dumps(data, indent="\t")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接