这个 JSON 分割器 splits JSON 数据,同时允许控制块大小。它会深度遍历 JSON 数据并构建更小的 JSON 块。它尝试保持嵌套的 JSON 对象完整,但如果需要,会将其分割,以保持块大小在 min_chunk_size 和 max_chunk_size 之间。
如果值不是嵌套的 JSON,而是一个非常大的字符串,则不会分割该字符串。如果您需要块大小的硬性上限,请考虑将这些块与递归文本分割器组合使用。有一个可选的预处理步骤来分割列表,方法是首先将它们转换为 JSON(字典),然后按此方式分割。
- 文本如何分割:JSON 值。
- 块大小如何测量:按字符数。
首先我们加载一些 JSON 数据:
基本用法
指定 max_chunk_size 来约束块大小:
要获取 JSON 块,使用 .split_json 方法:
要获取 LangChain Document 对象,使用 .create_documents 方法:
或者使用 .split_text 直接获取字符串内容:
如何从列表内容管理块大小
请注意,此示例中的一个块大于指定的 max_chunk_size 300。查看其中一个更大的块,我们看到那里有一个列表对象:
默认情况下,JSON 分割器不会分割列表。
指定 convert_lists=True 来预处理 JSON,将列表内容转换为带有 index:item 作为 key:val 对的字典:
让我们看看块的大小。现在它们都在最大值以下
列表已被转换为字典,即使分割成多个块,也保留了所有需要的上下文信息:
官方原文:src/oss/python/integrations/splitters/recursive_json_splitter.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。
Last modified on November 3, 2026