所以我使用的是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"对象内部时关闭缩进?如果是这样,有人请告诉我怎么样?
我可以用下面这段代码来创建的替代一个新的文件a与aa使用正则表达式.
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- > bb和c- > cc.
所以我必须为我要改变的所有字母写下那一行,或者有一种更简单的方法.也许要创建一个翻译的"字典".我应该把这些字母放到一个数组中吗?如果我这样做,我不确定如何打电话给他们.