【发布时间】:2015-07-12 00:06:43
【问题描述】:
我正在使用要发送到服务器的键/值对构造一个 JSON,如果 Name 字段为空且 Item_2 字段小于 0,那么我想删除 Name 字段.
我正在使用最多 10 个嵌套字典,但只有字典 2-10 或 1-9[indexed] 符合此条件。
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})
lResults 转储为 JSON 的结果,我想删除我想构造条件的所有键:
if "Name" == " " and DacItemCount < 0:
then remove `Name` key and value
具有空白名称字段的 lResults 的 JSON
{
"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"
}
【问题讨论】:
-
你真的可以用一个函数来组织它;这样,字典的过滤和生成就在一两个地方了。
标签: python json dictionary