在下面的python3
代码中,我读取了json
中的所有objects
,然后在json
中循环elements
。如果我只搜索id is not None
,则该元素和空值将被删除。但是,当我添加or
语句以删除id is not ""
时,打印整个文件时,或语句中的id
都没有删除。作为python
的新手,我不确定我做错了什么。谢谢:)。
文件
{
"objects": [
{
"version": "1",
"list": [
{
"
"json": null
},
"id": "",
}
],
"h": "na"
},
{
"version": "1",
"list": [
{
"
"json": null
},
"id": "This has text in it and should be printed",
}
],
"h": "na"
},
{
"version": "1",
"list": [
{
"
"json": null
},
"id": null,
}
],
"h": "na"
}
]
}
需要
{
"version": "1",
"list": [
{
"
"json": null
},
"id": "This has text in it and should be printed",
}
],
"h": "na"
},
Python3
if v["id"] is not None or v['id'] is not "":
还尝试了以下操作,并更改了id
:
for obj in data['objects']:
if obj.get('id') is "":
obj['description'] = 'na'
1条答案
按热度按时间j91ykkif1#
不管值是什么,这个语句都将 * 总是 * 为真。
如果值为None,则
is not ""
部分为true。如果该值是空字符串,则
is not None
部分为真。如果值为其他值,则两部分都为真。
正如@Pranav评论的那样,您希望在这里使用
and
,而不是or
。