【发布时间】:2017-01-18 12:50:53
【问题描述】:
所以我有以下 JSON:
{
"root" : {
"111111" : {
"sampleKey" : true
},
"222222" : {
"sampleKey" : false
},
"333333" : {
"sampleKey" : true
},
"444444" : {
"sampleKey" : false
}
}
}
我正在尝试删除 sampleKey 为 false 的任何元素,然后保存更新的 JSON 文件,但我的代码不起作用,我正在尝试找出我做错了什么:
import json
output_file = open('input_file.json').read()
output_json = json.loads(output_file)
for i in xrange(len(output_json["root"])):
if(output_json["root"][i]["signedUp"] == "false"):
output_json.pop(output_json[i])
break
open("updated-file.json", "w").write(json.dumps(obj, sort_keys=True, indent=4, separators=(',', ': '))
)
谁能帮帮我
【问题讨论】:
-
output_json["root"]是一个字典,你用整数索引它! -
请注意 output_json 是一个 Python 字典。原始 JSON 文件中的
true和false的值现在将是 Python 布尔值True和False。除了有关引用 dict 值的 cmets(Kasramvd 的答案很棒)之外,请注意您正在使用的数据类型。您的所有项目都将无法通过== "false"测试,因为您正在比较布尔值和字符串。
标签: python json python-2.7 python-3.x