从2d JSON中删除空值



我有一个二维json,它看起来像这样:

a =  [
{
"photo": null,
....
"webUrl": null,
"createdByUser": null,
"lastModifiedByUser": null,
"id": "154854566458484754...."
},
{
"photo": null,
....
"webUrl": null,
"createdByUser": null,
"lastModifiedByUser": null,
"id": "154854566458484000...."
},
]

如何在python的帮助下删除所有空值?

对于一维Json,我像这样得到:

filtered_data = {}
for key, value in data.items():
if value != None:
filtered_data[key] = value

但是对于二维Json Json,我写得不太对

filtered_data = {}
list          = []
i = 0
length = len(data) 
for i  in range(0, length):
for key, value in data[i].items():
if value != None and key != '@odata.type':
filtered_data[key] = value
list.append(filtered_data) 
return list

得到json

最后一项的数倍

如何在python的帮助下删除所有空值?

思路是扫描数据并收集not None值。试试下面的

import json
json_str = '''[
{
"photo": null,
"webUrl": null,
"createdByUser": null,
"lastModifiedByUser": null,
"id": "154854566458484754...."
},
{
"photo": null,
"webUrl": null,
"createdByUser": null,
"lastModifiedByUser": null,
"id": "154854566458484000...."
}
]'''
data = json.loads(json_str)
new_data = []
for entry in data:
new_data.append({})
for k, v in entry.items():
if v is not None:
new_data[-1][k] = v
print(new_data)

输出
[{'id': '154854566458484754....'}, {'id': '154854566458484000....'}]

最新更新