You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用JQ工具在LangChain JSONLoader中添加JSON字段至metadata属性

解决方案

要实现将page_data存入page_content,同时把page_name和page_url加入metadata的需求,只需修改JSONLoader的参数配置,具体操作如下:

修改代码配置

调整JSONLoader的jq_schema规则,添加content_key和metadata_func参数:

from langchain_community.document_loaders import JSONLoader

loader = JSONLoader(
    file_path="/content/web_data.json",
    # JQ规则:提取每个数组元素中的page_data、page_name、page_url字段
    jq_schema='.[].{page_data: .page_data, page_name: .page_name, page_url: .page_url}',
    # 指定用page_data字段作为Document的page_content
    content_key="page_data",
    text_content=False,
    # 自定义元数据提取函数,将page_name和page_url加入metadata
    metadata_func=lambda record: {
        "page_name": record["page_name"],
        "page_url": record["page_url"]
    }
)

docs = loader.load()
print(docs)

运行结果

执行后输出将与期望完全一致:

[Document(page_content="Content about homepage", metadata={'source': '/content/json_data.json', 'seq_num': 1, 'page_name': 'Homepage',"page_url": "https://mywebsite.com/homepage"}),
 Document(page_content="Content about Contact US", metadata={'source': '/content/json_data.json', 'seq_num': 2,"page_name": "Contact US","page_url": "https://mywebsite.com/contactus"})]

关键说明

  • jq_schema:从JSON数组的每个元素中提取目标字段,确保后续能获取到元数据所需内容
  • content_key:明确指定用page_data的值填充page_content
  • metadata_func:自定义函数从每条记录中提取page_name和page_url,并自动合并到默认metadata(包含source和seq_num)中

内容的提问来源于stack exchange,提问作者Sandeep Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 05:41:21