将空JSON字符串清空为空

时间:2015-04-23 11:27:25

标签: python json

我正在使用第三方API,它为我提供了JSON响应。

样本回复是

{
   "peopleList":[
      {
         "name":"Jack",
         "age":26,
         "creditcard":"12335435345"
      },
      {
         "name":"Arya",
         "age":22,
         "creditcard":""
      },
      {
         "name":"Rob",
         "age":16,
         "creditcard":""
      }
   ],
   "responseTime":0.02,
   "error":""
}

此处empty string用于表示No Value,我认为应该是空的。{。} 如何使用python将所有空字符串的值替换为null?

修改
我正在使用django将JSON提供给我在Swift中的ios App。因此,尽管python中的空字符串是false,但它并不是很快。

甚至更好。如何删除所有空字符串的键?

注意:JSON的结构未知。

1 个答案:

答案 0 :(得分:3)

data = json.loads(**your raw json string**)
nullify(data)

def nullify(container) :
 for key in container:
         if type(key) == list:
                 nullify(key)
         elif type(key) == dict:
                 nullify(key)
         elif type(container[key]) == dict or type(container[key]) == list:
                 nullify(container[key])
         elif container[key] == '':
                 container[key] = None

我相信这对你有用。此外,python中没有null。相反,您可以使用None

****** ****** EDIT

要完全删除密钥,您必须使用container.pop(key,None)。但是你不能在迭代中进行,所以你必须将所有这些键存储在一个列表中,然后从字典中弹出它们。