Python:json如何转储无空字符串

Ahs*_*san 8 python json

我希望Python None在json中编码为空字符串如何?以下是默认行为json.dumps.

>>> import json
>>> json.dumps(['foo', {'bar': ('baz', None, 1.0, 2)}])
'["foo", {"bar": ["baz", null, 1.0, 2]}]'
Run Code Online (Sandbox Code Playgroud)

我应该覆盖json编码器方法还是有其他方法吗?

谢谢!

编辑

输入数据并不像上面的示例那么简单,在每个请求上都可以将其更改为不同的数据结构.很难编写一个改变数据结构的函数.

Nou*_*him 9

在您要编码的对象中,使用空字符串而不是a None.

这是一个未经测试的函数,它遍历一系列嵌套字典以将所有None值更改为''.添加对列表和元组的支持留给读者练习.:)

import copy

def scrub(x):
    ret = copy.deepcopy(x)
    # Handle dictionaries. Scrub all values
    if isinstance(x, dict):
        for k,v in ret.items():
            ret[k] = scrub(v)
    # Handle None
    if x == None:
        ret = ''
    # Finished scrubbing
    return ret
Run Code Online (Sandbox Code Playgroud)