相关疑难解决方法(0)

如何使用JSON模块进行漂亮打印时实现自定义缩进?

所以我使用的是Python 2.7,使用该json模块对以下数据结构进行编码:

'layer1': {
    'layer2': {
        'layer3_1': [ long_list_of_stuff ],
        'layer3_2': 'string'
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是我使用漂亮的打印方式打印出来,如下所示:

json.dumps(data_structure, indent=2)
Run Code Online (Sandbox Code Playgroud)

哪个好,除了我要缩进所有内容,除了内容"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"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我真正想要的是类似于以下内容:

{
  "layer1": {
    "layer2": {
      "layer3_1": [{"x":1,"y":7},{"x":0,"y":4},{"x":5,"y":3},{"x":6,"y":9}],
      "layer3_2": "string"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我听说可以扩展json模块:是否可以将其设置为仅在"layer3_1"对象内部时关闭缩进?如果是这样,有人请告诉我怎么样?

python json indentation

31
推荐指数
4
解决办法
2万
查看次数

如何在python中使用正则表达式进行多次替换?

我可以用下面这段代码来创建的替代一个新的文件aaa使用正则表达式.

import re

with open("notes.txt") as text:
    new_text = re.sub("a", "aa", text.read())
    with open("notes2.txt", "w") as result:
        result.write(new_text)
Run Code Online (Sandbox Code Playgroud)

我想知道我是否必须使用这一行,new_text = re.sub("a", "aa", text.read())多次但是将字符串替换为我要更改的其他字母,以便在我的文本中更改多个字母?

也就是说,所以a- > aa,b- > bbc- > cc.

所以我必须为我要改变的所有字母写下那一行,或者有一种更简单的方法.也许要创建一个翻译的"字典".我应该把这些字母放到一个数组中吗?如果我这样做,我不确定如何打电话给他们.

python regex string

30
推荐指数
5
解决办法
5万
查看次数

标签 统计

python ×2

indentation ×1

json ×1

regex ×1

string ×1