【发布时间】:2019-06-18 15:15:41
【问题描述】:
在迭代它时,我无法从 json 中删除项目。我已经尝试了几种方法来实现它,但它没有按预期工作。
有json例子:
{
"year" : 2019,
"values" : [{
"key" : 70,
"messages" : [{
"code" : 997,
"messages" : 1112245
}
]
}, {
"key" : 90,
"messages" : [{
"code" : 997,
"messages" : 26347680
}
]
}
]}
我需要迭代“值”并删除具有特定“键”的项目。 有一个单独的键列表:
key_list = [60, 70, 80, 90]
我尝试使用以下代码,但它不起作用:
for i in json["values"]:
if i["key"] not in key_list :
del i
我也试过用pop,popitem,clear没有效果。
当前版本是:
def delRecords(json):
x = 0
for i in json["values"]:
if i["key"] not in key_list :
json["mtids"].pop(x)
x += 1
return json
但它看起来很难看,我必须多次启动脚本才能删除所有项目。 您能否提供一个建议,我如何从 json 中删除这些项目?有什么最佳做法吗?
谢谢!
【问题讨论】:
标签: python json python-2.7