检查dicts中的值并在Python中删除是否满足条件

2024-09-29 01:35:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个JSON对象,其中没有值,我想删除任何维护这些值的字典。如果满足条件语句,如何成功实现删除字典的逻辑

 {
        "MetaData": {}, 
        "SRData": {
            "ListOfLa311BulkyItem": {
                "BulkyItem": [
                    {
                        "BulkyItemCount": "None", 
                        "BulkyItemType": "None", 
                        "DriverFirstName": "SA", 
                        "DriverLastName": "Aguilar", 
                        "LastUpdatedBy": "SANSTAR1", 
                        "Name": "072420150115103541", 
                        "Type": "Bulky Items"
                    }, 
                    {
                        "BulkyItemCount": "None", 
                        "BulkyItemType": "None", 
                        "DriverFirstName": "SA", 
                        "DriverLastName": "Aguilar", 
                        "LastUpdatedBy": "SANSTAR1", 
                        "Name": "072420150115103542", 
                        "Type": "Bulky Items"
                    }
                ]
            }, 
            "ReasonCode": "", 
            "ResolutionCode": "A", 
            "SRNumber": "1-21939511"
        }
    }

下面代码中的D引用了BulkyItem列表中的字典

lIndexes = []
            nCnt = len(l311)
            for i in range(nCnt):
                dd = l311[i]
                if(dd==d):
                    lIndexes.append(i)

            for i in lIndexes:
                i

            #remove the d from the original l311 in a reverse order:
            # print ("order (of index) in which items are deleted:" )
            for ii in reversed(lIndexes):
               if d['Name'] <> str:
                    # print(ii)
                    del l311[ii]

使用@Ewan建议的语法输出JSON

[
    {
        "MetaData": {}, 
        "SRData": {
            "ListOfLa311MetalHouseholdAppliancesPickup": {
                "La311MetalHouseholdAppliancesPickup": [
                    {
                        "DriverFirstName": "SA", 
                        "DriverLastName": "Aguilar", 
                        "HouseHoldItemCount": "None", 
                        "HouseholdItem": "None", 
                        "LastUpdatedBy": "SANSTAR1", 
                        "Name": "072820151331438211", 
                        "Type": "Metal/Household Appliances"
                    }, 
                    {
                        "DriverFirstName": "SA", 
                        "DriverLastName": "Aguilar", 
                        "ElectronicWestType": "None", 
                        "ItemCount": "None", 
                        "LastUpdatedBy": "SANSTAR1", 
                        "Name": " ", 
                        "Type": "Metal/Household Appliances"
                    }
                ]
            }, 
            "ReasonCode": "", 
            "ResolutionCode": "", 
            "SRNumber": "1-22184611"
        }
    }
]

除了上一个附加字典之外,代码还能工作,这是什么原因造成的


Tags: nameinnonefor字典typesaii
1条回答
网友
1楼 · 发布于 2024-09-29 01:35:37

看起来JSON中的None是一个字符串,而不是None类型

因此,您需要将支票修改为:

if d["BulkyItemCount"] == None or d["BulkyItemCount"] == "None"

相关问题 更多 >