回答问题

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

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

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

输入数据并不像上面的例子那么简单,在每次请求时,它都可以更改为不同的数据结构。很难编写更改数据结构的函数。

Answers

在您正在编码的对象中,使用空字符串而不是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
Logo

学AI,认准AI Studio!GPU算力,限时免费领,邀请好友解锁更多惊喜福利 >>>

更多推荐