Python - 从字典/列表中删除项目[重复]

Posted

技术标签:

【中文标题】Python - 从字典/列表中删除项目[重复]【英文标题】:Python - remove item from Dict/List [duplicate] 【发布时间】:2016-03-14 00:48:05 【问题描述】:

我对 Mongo 的 Web 服务调用返回以下 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



【问题讨论】:

在这些线程中解决了类似的问题。 ***.com/questions/19201233/…***.com/questions/28706841/… 【参考方案1】:

用json加载,如果key为空则移除key:

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

在 Python 中,空字符串等于 False

【讨论】:

【参考方案2】:

使用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

【讨论】:

【参考方案3】:

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

del d[k]

【讨论】:

以上是关于Python - 从字典/列表中删除项目[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python:从两个列表构建字典[重复]

删除python中字典值的重复项

如何从字典中的列表中删除元素[重复]

从Python中的字典中删除键[重复]

合并字典列表以删除所有重复项

在 Python 中删除列表中的重复字典