这是一个相当迟钝的问题,没有一个典型的答案是冒泡到顶部。
我正在开发的工具的性质决定了我们使用MongoDB来存储大约25种不同工具的“设置”。每个工具都有自己的设置模式,因此每个文档都是不同的,但它们都存储在同一个集合中,并在由json模式绘制的同一个编辑页面上进行编辑。
由于不知道字典的模式,我正在努力找出如何迭代和清理数据,特别是删除密码。
给定下面的字典,并且知道其他dict可能有不同的模式,那么我如何遍历dict中的每一项并创建一个完全相同的拷贝,除了去掉任何key==“password”之外?
所以:
{
"_enabled": true,
"instances": [
{
"isdefault": true,
"name": "dev",
"password": "abc123",
"url": "http://dev.example.com",
"user": "buffy"
},
{
"isdefault": false,
"name": "prod",
"password": "xxxxx",
"url": "http://prod.example.com",
"user": "spike"
},
{
"isdefault": false,
"name": "qa",
"password": "dasddf",
"url": "http://prod.example.com",
"user": "willow"
}
],
"label": "MyServers"
}
应导致:
^{pr2}$
首先深度复制dict,然后捕获所有字典并删除密码键:
输入:
^{pr2}$输出:
假设您只想检查列表或字典的容器,并从具有
key = "password"
的字典条目中删除键值对如果您知道每个数据的结构(也就是说,在数组/字典的深度中应该有“password”键),这就很简单了。您只需在列表项和字典中循环查找“password”键。在
如果每个设置字典的结构都是不可预测的,那么你就必须想出一个解决方案。在这种情况下,我所做的就是将我的JSON转储到一个字符串中,使用regex删除/隔离我感兴趣的数据,然后将字符串加载回结构化JSON。在
像这样:
导入json,re
结果:
^{pr2}$相关问题 更多 >
编程相关推荐