4.langchain 入门到放弃(二) Document loaders-JSON
langchain 入门到放弃(二) Document loaders-JSON
JSONLoader 使用指定的 jq 架构来解析 JSON 文件。它使用 jq python 包。
pip install jq
JSONLoader
json格式如下
{
"data": [
{
"attributes": {
"message": "message1",
"tags": [
"tag1"
]
},
"id": "1"
},
{
"attributes": {
"message": "message2",
"tags": [
"tag2"
]
},
"id": "2"
}
]
}
假设我们想提取 JSON 数据消息键中内容字段下的值。这可以通过 JSONLoader 轻松实现,如下所示。
from langchain_community.document_loaders import JSONLoader
json = JSONLoader(
file_path="../source/simple_chat.json",
jq_schema=".data",
text_content=False
)
documents = json.load()
print(documents)
输出结果
[Document(page_content="[{'attributes': {'message': 'message1', 'tags': ['tag1']}, 'id': '1'}, {'attributes': {'message': 'message2', 'tags': ['tag2']}, 'id': '2'}]", metadata={'source': '/Users/zhukai/python_work/langchain_learn/source/simple_chat.json', 'seq_num': 1})]
JSON Lines file
json文件
{"data":[{"attributes":{"message":"message1","tags":["tag1"]},"id":"1"},{"attributes":{"message":"message2","tags":["tag2"]},"id":"2"}]}
需要设置json_lines=True
from langchain_community.document_loaders import JSONLoader
json = JSONLoader(
file_path="../source/jsonline.json",
jq_schema=".data",
text_content=False,
json_lines=True
)
documents = json.load()
print(documents)
输出结果
[Document(page_content="[{'attributes': {'message': 'message1', 'tags': ['tag1']}, 'id': '1'}, {'attributes': {'message': 'message2', 'tags': ['tag2']}, 'id': '2'}]", metadata={'source': '/Users/zhukai/python_work/langchain_learn/source/jsonline.json', 'seq_num': 1})]
JSON content_key
要使用 content_key 从 JSON 文件加载文档,请设置 is_content_key_jq_parsable=True。确保 content_key 兼容并且可以使用 jq 模式进行解析。
from langchain_community.document_loaders import JSONLoader
json = JSONLoader(
file_path="../source/simple_chat.json",
jq_schema=".data[]",
content_key=".attributes.message",
is_content_key_jq_parsable=True,
)
documents = json.load()
print(documents)
输出结果
[Document(page_content='message1', metadata={'source': '/Users/zhukai/python_work/langchain_learn/source/simple_chat.json', 'seq_num': 1}), Document(page_content='message2', metadata={'source': '/Users/zhukai/python_work/langchain_learn/source/simple_chat.json', 'seq_num': 2})]