【问题标题】:Python - remove item from Dict/List [duplicate]Python - 从字典/列表中删除项目[重复]
【发布时间】: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


}

}

【问题讨论】:

标签: python json mongodb


【解决方案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]
      

      【讨论】:

        猜你喜欢
        • 2012-02-16
        • 2017-08-13
        • 2016-03-13
        • 2016-03-13
        • 2011-10-28
        • 1970-01-01
        • 2011-09-29
        相关资源
        最近更新 更多