logz#

#

DumpEncoder

用于 Python 数据结构的可扩展 JSON 编码器 <https://json.org>。

函数#

属性#

root_log#
NullHandler#
DEBUG_FORMATTER#
INFO_FORMATTER#
set_root_level(level=INFO)#
attach_stderr(level=INFO)#
detach_stderr()#
initialize_logging(level=INFO)#
class DumpEncoder(*, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None)#

Bases: json.JSONEncoder

用于 Python 数据结构的可扩展 JSON 编码器 <https://json.org>。

默认情况下支持以下对象和类型

Python

JSON

dict

object

list, tuple

array

str

string

int, float

number

True

true

False

false

None

null

要扩展此功能以识别其他对象,请子类化并实现一个 .default() 方法,该方法具有另一个方法,如果可能,则为 o 返回可序列化对象,否则它应该调用超类实现(以引发 TypeError)。

JSONEncoder 的构造函数,具有合理的默认值。

如果 skipkeys 为 false,则尝试编码非 str、int、float 或 None 类型的键将引发 TypeError。如果 skipkeys 为 True,则会简单地跳过此类项目。

如果 ensure_ascii 为 true,则输出保证是 str 对象,所有传入的非 ASCII 字符都会被转义。如果 ensure_ascii 为 false,则输出可以包含非 ASCII 字符。

如果 check_circular 为 true,则将在编码期间检查列表、字典和自定义编码对象是否存在循环引用,以防止无限递归(这将导致 RecursionError)。否则,不会进行此类检查。

如果 allow_nan 为 true,则 NaN、Infinity 和 -Infinity 将被编码为这样。此行为不符合 JSON 规范,但与大多数基于 JavaScript 的编码器和解码器一致。否则,编码此类浮点数将引发 ValueError。

如果 sort_keys 为 true,则字典的输出将按键排序;这对于回归测试非常有用,以确保可以每天比较 JSON 序列化。

如果 indent 是一个非负整数,则 JSON 数组元素和对象成员将使用该缩进级别进行美化打印。缩进级别为 0 将仅插入换行符。None 是最紧凑的表示形式。

如果指定了 separators,则 separators 应该是 (item_separator, key_separator) 元组。如果 indentNone,则默认值为 (', ', ': '),否则为 (',', ': ')。要获得最紧凑的 JSON 表示形式,您应该指定 (',', ':') 以消除空格。

如果指定了 default,则 default 是一个函数,用于为无法以其他方式序列化的对象调用。它应该返回对象的 JSON 可编码版本或引发 TypeError

default(obj)#

在子类中实现此方法,使其为 o 返回可序列化对象,或调用基本实现(以引发 TypeError)。

例如,要支持任意迭代器,您可以像这样实现 default

def default(self, o):
    try:
        iterable = iter(o)
    except TypeError:
        pass
    else:
        return list(iterable)
    # Let the base class default method raise the TypeError
    return JSONEncoder.default(self, o)
_DUMPS#
jsondumps(obj)#
fullname(obj)#
request_header_sort_dict#
request_header_sort_key(item)#
response_header_sort_dict#
response_header_sort_key(item)#
stringify(obj, content_max_len=0)#