0
我正在构建一个JSON与键/值对,我发送到服务器,如果Name
字段为空和Item_2
字段是< 0,那么我会喜欢删除Name
字段。如何从Python中的JSON删除空的键/值对
我正在使用多达10个嵌套字典,但只有字典2-10或1-9 [索引]才符合此标准。
lResults
是我的结果的列表,它被倾倒到JSON格式,当我打印lResults[0]['SRData']['ListOfLa311DeadAnimalRemoval']['DeadAnimalRemoval'][0]['Name']
只值打印,而且我没有看到空字符串,但是当lResults转储到一个JSON我看空的字符串。
10个字典中的每个字典中的变量都可能是也可能不是空白的,但是我发送此JSON的服务器要么是期望名称字段,要么没有,并且名称字段对每个字典都是唯一的。
这是我的代码;
dL311 = dict()
d = dict()
d.setdefault("DriverFirstName",last_edited_user)
d.setdefault("DriverLastName","Aguilar")
d.setdefault("LastUpdatedBy", "SANSTAR1")
d.setdefault("DACType", dar_item_1)
d.setdefault("Type", "Dead Animal Removal")
d.setdefault("Name", dar_uid_1)
d.setdefault("DACItemCount", dar_qyt_1)
l311.append(d)
dL311 = dict()
d = dict()
d.setdefault("DriverFirstName",last_edited_user)
d.setdefault("DriverLastName","Aguilar")
d.setdefault("LastUpdatedBy", "SANSTAR1")
d.setdefault("DACType", dar_item_2)
d.setdefault("Type", "Dead Animal Removal")
d.setdefault("Name", dar_uid_2)
d.setdefault("DACItemCount", dar_qyt_2)
l311.append(d)
d = dict()
d.setdefault("DriverFirstName",last_edited_user)
d.setdefault("DriverLastName","Aguilar")
d.setdefault("LastUpdatedBy", "SANSTAR1")
d.setdefault("DACType", dar_item_3)
d.setdefault("Type", "Dead Animal Removal")
d.setdefault("Name", dar_uid_3)
d.setdefault("DACItemCount", dar_qyt_3)
l311.append(d)
d = dict()
d.setdefault("DriverFirstName",last_edited_user)
d.setdefault("DriverLastName","Aguilar")
d.setdefault("LastUpdatedBy", "SANSTAR1")
d.setdefault("DACType", dar_item_4)
d.setdefault("Type", "Dead Animal Removal")
d.setdefault("Name", dar_uid_4)
d.setdefault("DACItemCount", dar_qyt_4)
l311.append(d)
d = dict()
d.setdefault("DriverFirstName",last_edited_user)
d.setdefault("DriverLastName","Aguilar")
d.setdefault("LastUpdatedBy", "SANSTAR1")
d.setdefault("DACType", dar_item_5)
d.setdefault("Type", "Dead Animal Removal")
d.setdefault("Name", dar_uid_5)
d.setdefault("DACItemCount", dar_qyt_5)
l311.append(d)
dL311 = dict()
dL311.setdefault("DeadAnimalRemoval", l311)
dResult.setdefault("ListOfLa311DeadAnimalRemoval",dL311)
lResults.append({"MetaData": {}, "SRData": dResult})
结果倾倒的JSON lResults的,我想删除所有的键,我想构造一个指明了condtion:
if "Name" == " " and DacItemCount < 0:
then remove `Name` key and value
JSON lResults的空白名称字段
{
"MetaData": {},
"SRData": {
"ListOfLa311DeadAnimalRemoval": {
"DeadAnimalRemoval": [
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": "070920151120552101",
"Type": "Dead Animal Removal"
},
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": " ",
"Type": "Dead Animal Removal"
},
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": " ",
"Type": "Dead Animal Removal"
},
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": " ",
"Type": "Dead Animal Removal"
},
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": " ",
"Type": "Dead Animal Removal"
},
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": " ",
"Type": "Dead Animal Removal"
},
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": " ",
"Type": "Dead Animal Removal"
},
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": " ",
"Type": "Dead Animal Removal"
},
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": " ",
"Type": "Dead Animal Removal"
},
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": " ",
"Type": "Dead Animal Removal"
}
]
},
"ReasonCode": "",
"ResolutionCode": "A",
"SRNumber": "1-20979921"
}
}
]
[
{
"MetaData": {},
"SRData": {
"ListOfLa311DeadAnimalRemoval": {
"DeadAnimalRemoval": [
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": "070920151119458601",
"Type": "Dead Animal Removal"
},
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": " ",
"Type": "Dead Animal Removal"
},
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": " ",
"Type": "Dead Animal Removal"
},
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": " ",
"Type": "Dead Animal Removal"
},
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": " ",
"Type": "Dead Animal Removal"
},
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": " ",
"Type": "Dead Animal Removal"
},
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": " ",
"Type": "Dead Animal Removal"
},
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": " ",
"Type": "Dead Animal Removal"
},
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": " ",
"Type": "Dead Animal Removal"
},
{
"DACItemCount": "0",
"DACType": " ",
"DriverFirstName": "Esri_Anonymous",
"DriverLastName": "Aguilar",
"LastUpdatedBy": "SANSTAR1",
"Name": " ",
"Type": "Dead Animal Removal"
}
你真的可以用一个函数来组织这个;这样,字典的过滤和生成就在一两个地方。 – Makoto