Python版本2.7
>>> json.loads('{"key":null,"key2":"yyy"}')
{u'key2': u'yyy', u'key': None}
Run Code Online (Sandbox Code Playgroud)
以上是默认行为.我想要的是成为:
{u'key2': u'yyy'}
Run Code Online (Sandbox Code Playgroud)
有什么建议?非常感谢!
Mar*_*ers 14
您可以在加载后过滤结果:
res = json.loads(json_value)
res = {k: v for k, v in res.iteritems() if v is not None}
Run Code Online (Sandbox Code Playgroud)
或者你可以在object_hook
callable中执行此操作:
def remove_nulls(d):
return {k: v for k, v in d.iteritems() if v is not None}
res = json.loads(json_value, object_hook=remove_nulls)
Run Code Online (Sandbox Code Playgroud)
它也将处理递归字典.
对于Python 3,使用.items()
而不是.iteritems()
有效地枚举字典的键和值.
演示:
>>> import json
>>> json_value = '{"key":null,"key2":"yyy"}'
>>> def remove_nulls(d):
... return {k: v for k, v in d.iteritems() if v is not None}
...
>>> json.loads(json_value, object_hook=remove_nulls)
{u'key2': u'yyy'}
>>> json_value = '{"key":null,"key2":"yyy", "key3":{"foo":null}}'
>>> json.loads(json_value, object_hook=remove_nulls)
{u'key3': {}, u'key2': u'yyy'}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8627 次 |
最近记录: |