Python 如何删除JSON对象上的属性
我有一个JSON响应,需要删除一个包含该值的属性,并将其作为响应添加到JSON对象中解析的新列表中 JSON响应是:Python 如何删除JSON对象上的属性,python,json,python-3.x,list,dictionary,Python,Json,Python 3.x,List,Dictionary,我有一个JSON响应,需要删除一个包含该值的属性,并将其作为响应添加到JSON对象中解析的新列表中 JSON响应是: [ { "bookmark": "bla", "entity_name": "aag", "id": 56 }, { "bookmark": "ag", "entity_name": "dsg", "id": 34 }, { "
[
{
"bookmark": "bla",
"entity_name": "aag",
"id": 56
},
{
"bookmark": "ag",
"entity_name": "dsg",
"id": 34
},
{
"bookmark": "agds",
"entity_name": "dsaga",
"id": 12
}
...
]
我想对此进行扩展,但要拼接它的一些属性,例如“bookmark”,并将其作为JSON对象发送回去
事情是这样的
[
{
"entity_name": "aag",
"id": 56
},
{
"entity_name": "dsg",
"id": 34
},
{
"entity_name": "dsaga",
"id": 12
}
...
]
我已经尝试了很多方法,但似乎无法获得如上所述的理想输出
如果新列表与上述类似:
return jsonify(newList)
任何建议都会非常有用。
感谢您使用python
可以使用del运算符
以你为例
_collections = [{
'bookmark': 'bookmark',
'entity_name': "aag",
'id': 56
},
{
'bookmark': 'bookmark',
'entity_name': "aag",
'id': 56
},
{
'bookmark': 'bookmark',
'entity_name': "aag",
'id': 56
}
]
for item in _collections:
del item["bookmark"]
print(_collections)
对于javascript
您可以使用删除运算符
以您的例子:
var _firstCollection = [
{
"bookmark": "bla",
"entity_name": "aag",
"id": 56
},
{
"bookmark": "ag",
"entity_name": "dsg",
"id": 34
},
{
"bookmark": "agds",
"entity_name": "dsaga",
"id": 12
}
];
_firstCollection.forEach(item => {
delete item.bookmark; // removes bookmark property of every item
});
console.log(_firstCollection);
对于python
可以使用del运算符
以你为例
_collections = [{
'bookmark': 'bookmark',
'entity_name': "aag",
'id': 56
},
{
'bookmark': 'bookmark',
'entity_name': "aag",
'id': 56
},
{
'bookmark': 'bookmark',
'entity_name': "aag",
'id': 56
}
]
for item in _collections:
del item["bookmark"]
print(_collections)
对于javascript
您可以使用删除运算符
以您的例子:
var _firstCollection = [
{
"bookmark": "bla",
"entity_name": "aag",
"id": 56
},
{
"bookmark": "ag",
"entity_name": "dsg",
"id": 34
},
{
"bookmark": "agds",
"entity_name": "dsaga",
"id": 12
}
];
_firstCollection.forEach(item => {
delete item.bookmark; // removes bookmark property of every item
});
console.log(_firstCollection);
使用json库:
输出:
[
{"entity_name": "aag", "id": 56},
{"entity_name": "dsg", "id": 34},
{"entity_name": "dsaga", "id": 12}
]
此解决方案有几个步骤
首先,如果您的输入是JSON对象,那么必须将其转换为适当的Python对象,通常是嵌套的dict或list。这是通过json.loads完成的,我记得它是json加载字符串
接下来,我们可以使用一个简单的理解来获得我们想要的结果,这是一个大小相同的列表,只需删除其中每个dict的“bookmark”键即可。所使用的理解等同于以下内容:
loaded = json.loads(data)
result = []
for d in result:
new_d = {}
for key, value in d.items():
if key != 'bookmark':
new_d[key] = value
result.append(new_d)
最后,当然,我们使用JSON.dumps将结果转换回JSON对象。使用JSON库:
输出:
[
{"entity_name": "aag", "id": 56},
{"entity_name": "dsg", "id": 34},
{"entity_name": "dsaga", "id": 12}
]
此解决方案有几个步骤
首先,如果您的输入是JSON对象,那么必须将其转换为适当的Python对象,通常是嵌套的dict或list。这是通过json.loads完成的,我记得它是json加载字符串
接下来,我们可以使用一个简单的理解来获得我们想要的结果,这是一个大小相同的列表,只需删除其中每个dict的“bookmark”键即可。所使用的理解等同于以下内容:
loaded = json.loads(data)
result = []
for d in result:
new_d = {}
for key, value in d.items():
if key != 'bookmark':
new_d[key] = value
result.append(new_d)
最后,当然,我们使用JSON.dumps将结果转换回JSON对象。您可以在迭代数据时使用pop
import json
entities = [
{
"bookmark": "bla",
"entity_name": "aag",
"id": 56
},
{
"bookmark": "ag",
"entity_name": "dsg",
"id": 34
},
{
"bookmark": "agds",
"entity_name": "dsaga",
"id": 12
}
]
for entity in entities:
entity.pop("bookmark")
print(json.dumps(entities))
注意:如果要过滤掉多个键,则可以执行以下操作:
for entity in entities:
for key in ["bookmark", "foo", "bar"]:
entity.pop(key)
您可以在迭代数据时使用pop
import json
entities = [
{
"bookmark": "bla",
"entity_name": "aag",
"id": 56
},
{
"bookmark": "ag",
"entity_name": "dsg",
"id": 34
},
{
"bookmark": "agds",
"entity_name": "dsaga",
"id": 12
}
]
for entity in entities:
entity.pop("bookmark")
print(json.dumps(entities))
注意:如果要过滤掉多个键,则可以执行以下操作:
for entity in entities:
for key in ["bookmark", "foo", "bar"]:
entity.pop(key)
你能给我们看一下你的代码吗?那么基本上你只需要拿出书签键就可以了?@gmds-是的,没错,你能给我们看一下你的代码吗?那么基本上你只需要拿出书签键就可以了?@gmds-是的,没错,这是一个Python问题这是一个Python问题哇!非常感谢,你能给我解释一下你的想法吗did@gmds这里使用了[理解,用if条件迭代每个实体和筛选键哇!非常感谢,你能告诉我你想要什么吗did@gmds此处使用[理解],使用if条件迭代每个实体和筛选键