Python 修改JSON而不改变标记之间的空白
有没有一种方法可以在不改变标记之间空白的情况下修改JSON 这样的反序列化程序/序列化程序需要:Python 修改JSON而不改变标记之间的空白,python,json,Python,Json,有没有一种方法可以在不改变标记之间空白的情况下修改JSON 这样的反序列化程序/序列化程序需要: 跟踪标记之间的空白 具有处理数据结构长度变化(添加/删除字典/列表项)的明确概念 对处理JSON结构的插入/删除有一个定义良好的概念 最后两个条件使事情变得相当困难,因此我认为最好消除这个问题的最后两个条件。因此,我们只处理令牌列表以及它们之间的空格。我正在设想这样的事情: import stable_json with open("file.json") as f: data: stab
import stable_json
with open("file.json") as f:
data: stable_json.JsonObject = stable_json.loads(f.read())
json_dict = data.deserialize()
json_dict["point"]["x"] += 1
json_dict["values"] = [-42, 0, 42]
# Throws exception if any tokens have been inserted/removed
data.update_in_place(json_dict)
s = data.serialize()
print(s)
输入:
{
"key": "value",
"point": { "x": 1, "y": 2 }
"values": [ 3, 4, 5 ]
}
输出:
{
"key": "value",
"point": { "x": 2, "y": 2 }
"values": [ -42, 0, 42 ]
}
你为什么想要这个?如果您只是想让它保持可读性,请使用漂亮的打印机/格式化程序。如果你有其他原因想保留空白,你应该想想这是个多么糟糕的主意。@JimStewart为什么这是个糟糕的主意?因为意外地形成一个定义不清的问题的危险?如果使用JSON作为配置格式,如果只需要自动生成其中的一小部分,那么尽可能保持它的稳定性并不是世界上最糟糕的事情。如果使用JSON作为配置格式是个坏主意,那么这是另一个问题再想一想,这是一件非常不灵活的事情…data:stable_json.JsonObject=stable_json.loads(f.read())行中的data:means是什么意思?我从未遇到过这样的Python代码。你能指出这是怎么回事吗?@rajeshkumargp,那只是。这种特殊用法在Python3.8中是正式的,尽管类型提示通常在Python3.4的IIRC中。