因此,我使用的是Python 2.7,使用该json模块对以下数据结构进行编码:'layer1': { 'layer2': { 'layer3_1': [ long_list_of_stuff ], 'layer3_2': 'string' }}我的问题是我正在使用漂亮的打印来打印所有内容,如下所示:json.dumps(data_structure, indent=2)太好了,除了我要缩进的全部内容(内容除外)外,"layer3_1"这是一个庞大的字典,列出了坐标,因此,每一个上设置一个值都可以使漂亮的打印创建具有数千行的文件,并带有示例如下:{ "layer1": { "layer2": { "layer3_1": [ { "x": 1, "y": 7 }, { "x": 0, "y": 4 }, { "x": 5, "y": 3 }, { "x": 6, "y": 9 } ], "layer3_2": "string" } }}我真正想要的是类似于以下内容的东西:{ "layer1": { "layer2": { "layer3_1": [{"x":1,"y":7},{"x":0,"y":4},{"x":5,"y":3},{"x":6,"y":9}], "layer3_2": "string" } }}我听说可以扩展该json模块:是否可以将其设置为仅在"layer3_1"对象内部时关闭缩进?如果是这样,有人可以告诉我如何吗?
3 回答
繁华开满天机
TA贡献1816条经验 获得超4个赞
这是一个台阶,但是一旦您确定dumps()的内容的格式,就可以对它执行正则表达式替换,一旦您从dumps()获得了字符串即可。类似于以下内容:
s = json.dumps(data_structure, indent=2)
s = re.sub('\s*{\s*"(.)": (\d+),\s*"(.)": (\d+)\s*}(,?)\s*', r'{"\1":\2,"\3":\4}\5', s)
添加回答
举报
0/150
提交
取消