当前位置: 首页 > 知识库问答 >
问题:

Python-从Dict/List中删除项[重复]

芮宇航
2023-03-14

我对Mongo的Webservice调用将在JSON之后返回。我需要迭代这个JSON值并删除item-product_language,因为它包含NULL/空字符串。

对如何做到这一点有什么想法吗?

Python 3.4版本。

{

"prod_doc_key" : "613509",

"metadata" : {
    "channel_availability_for" : {
        "description" : "Kiosk and Web",
        "id" : 0
    },

    "dd_sold_out_flag" : 0,
    "dd_units_sold_flag" : 0,
    "display_type_id" : {
        "id" : 0
    },
    "preorder_flag" : 0,
    "price_in_cart_flag" : 0,
    "product_language" : "",
    "product_type" : {
        "id" : 0,
        "name" : "Product"
    },
    "promotion_flag" : 0,
    "published" : 1,
    "rebate_flag" : 0


}

}

共有3个答案

臧彭亮
2023-03-14

您可以使用以下语法从字典d中删除键k

del d[k]
盖马鲁
2023-03-14

使用json模块加载JSON。

import json

with open('demo.txt','r+') as f:
    dic=json.load(f)

    try:
        if dic['metadata']["product_language"]:
            del dic['metadata']["product_language"]
    except KeyError:
        print "Key doesn't exist"
    print dic

请注意,这里的dic是一个字典,您可以通过打印type(dic)来确定它。因此,您可以对它执行任何字典操作,例如,我删除了dic的一个键。要迭代dic,请执行以下操作:

for key,value in dic.iteritems():
    #do_something
苏宜人
2023-03-14

用json加载它,如果它为空,则删除键:

import json
item =json.loads(src)
if 'product_language' in item and not item['product_language']:
    item.pop('product_language')

在Python中,空字符串等于false。

 类似资料:
  • 我有一个python dict,我想从我的字典中自动删除和键,所以我想出了如下内容: 如您所见,它的可读性较低,并且导致我编写重复的代码。所以我想知道python中是否有一个方法可以从一个dict中移除任何键,而不会抛出键错误?

  • 问题内容: 我有一个自定义对象的ArrayList。我要删除重复的条目。 对象具有三个字段:和。如果字幕多次出现,那么我只需要带有thats字幕的第一项(忽略带有该字幕的其余对象)。 问题答案: 您可以使用自定义Comparator将ArrayList的内容放入TreeSet中,如果两个字幕相同,则应返回0。之后,您可以将Set转换为列表,并使列表中没有“重复项”。这是对象的示例,您当然应该使用正

  • 问题内容: 数据库类型为PostGres 8.3。 如果我写了: 我有一些计数超过1的行。如何取出重复的行(我仍然希望每个行都保留1行,而不是+1行…我不想删除所有行。) 例子: 应该变成: 我找到的唯一答案是 在那里,但是我想知道是否可以在没有哈希列的情况下做到这一点。 警告 我没有具有唯一编号的PK,因此无法使用min(…)技术。PK是3个字段。 问题答案: 这是所有表都应具有主键的众多原因之

  • 问题内容: 我在Python中有一个列表列表: 我想从中删除重复的元素。如果这是正常列表,而不是我可以使用的列表set。但不幸的是,该列表不可散列,因此无法建立一组列表。只有元组。因此,我可以将所有列表转换为元组,然后使用set并返回列表。但这不是很快。 如何以最有效的方式做到这一点? 上面的结果应为: 我不在乎保留订单。 注意:这个问题很相似,但不是我所需要的。搜索了SO,但没有找到确切的重复项

  • 问题内容: 我要删除重复的项目,重复的项目可以撤消。结果应为: 如何在Python中实现? 问题答案: 如果订单很重要,您可以随时使用OrderedDict

  • 问题内容: 我使用下面的代码行遍历数据库中的一个表: 如果我打印出数组: 我会得到这个: 但是我想摆脱数组中的重复项,所以我使用 我得到下面的奇怪结果,这不是我想要的结果: 理想情况下,我认为它应该返回以下内容: 我该怎么做才能正确处理?我使用了错误的PHP语法/默认功能吗? 问题答案: 该功能将为您完成此操作。您只需要添加标志: