CSV加载器#

class langchain_community.document_loaders.csv_loader.CSVLoader(file_path: str | Path, source_column: str | None = None, metadata_columns: Sequence[str] = (), csv_args: Dict | None = None, encoding: str | None = None, autodetect_encoding: bool = False, *, content_columns: Sequence[str] = ())[source]#

CSV文件加载到文档列表中。

每个文档代表CSV文件的一行。每一行都被转换为键/值对,并输出到文档的page_content中的新行。

默认情况下,从csv加载的每个文档的源都设置为所有文档的file_path参数的值。 您可以通过将source_column参数设置为CSV文件中的列名来覆盖此设置。 然后,每个文档的源将设置为source_column中指定的列名的值。

Output Example:
column1: value1
column2: value2
column3: value3
Instantiate:
from langchain_community.document_loaders import CSVLoader

loader = CSVLoader(file_path='./hw_200.csv',
    csv_args={
    'delimiter': ',',
    'quotechar': '"',
    'fieldnames': ['Index', 'Height', 'Weight']
})
Load:
docs = loader.load()
print(docs[0].page_content[:100])
print(docs[0].metadata)
Index: Index
Height: Height(Inches)"
Weight: "Weight(Pounds)"
{'source': './hw_200.csv', 'row': 0}
Async load:
docs = await loader.aload()
print(docs[0].page_content[:100])
print(docs[0].metadata)
Index: Index
Height: Height(Inches)"
Weight: "Weight(Pounds)"
{'source': './hw_200.csv', 'row': 0}
Lazy load:
docs = []
docs_lazy = loader.lazy_load()

# async variant:
# docs_lazy = await loader.alazy_load()

for doc in docs_lazy:
    docs.append(doc)
print(docs[0].page_content[:100])
print(docs[0].metadata)
Index: Index
Height: Height(Inches)"
Weight: "Weight(Pounds)"
{'source': './hw_200.csv', 'row': 0}
Parameters:
  • file_path (str | Path) – CSV文件的路径。

  • source_column (str | None) – CSV文件中用作源的列名。 可选。默认为None。

  • metadata_columns (Sequence[str]) – 用作元数据的列名序列。可选。

  • csv_args (Dict | None) – 传递给 csv.DictReader 的参数字典。 可选。默认为 None。

  • encoding (str | None) – CSV文件的编码。可选。默认为None。

  • autodetect_encoding (bool) – 是否尝试自动检测文件编码。

  • content_columns (Sequence[str]) – 用于文档内容的列名序列。 如果未提供,则使用所有不属于元数据的列。

方法

__init__(file_path[, source_column, ...])

alazy_load()

一个用于文档的懒加载器。

aload()

将数据加载到Document对象中。

lazy_load()

一个用于文档的懒加载器。

load()

将数据加载到Document对象中。

load_and_split([text_splitter])

加载文档并将其分割成块。

__init__(file_path: str | Path, source_column: str | None = None, metadata_columns: Sequence[str] = (), csv_args: Dict | None = None, encoding: str | None = None, autodetect_encoding: bool = False, *, content_columns: Sequence[str] = ())[源代码]#
Parameters:
  • file_path (str | Path) – CSV文件的路径。

  • source_column (str | None) – CSV文件中用作源的列名。 可选。默认为None。

  • metadata_columns (Sequence[str]) – 用作元数据的列名序列。可选。

  • csv_args (Dict | None) – 传递给 csv.DictReader 的参数字典。 可选。默认为 None。

  • encoding (str | None) – CSV文件的编码。可选。默认为None。

  • autodetect_encoding (bool) – 是否尝试自动检测文件编码。

  • content_columns (Sequence[str]) – 用于文档内容的列名序列。 如果未提供,则使用所有不属于元数据的列。

async alazy_load() AsyncIterator[Document]#

文档的懒加载器。

Return type:

AsyncIterator[Document]

async aload() list[Document]#

将数据加载到Document对象中。

Return type:

列表[Document]

lazy_load() Iterator[Document][source]#

文档的懒加载器。

Return type:

迭代器[文档]

load() list[Document]#

将数据加载到Document对象中。

Return type:

列表[Document]

load_and_split(text_splitter: TextSplitter | None = None) list[Document]#

加载文档并将其分割成块。块以文档形式返回。

不要重写此方法。它应该被视为已弃用!

Parameters:

text_splitter (可选[TextSplitter]) – 用于分割文档的TextSplitter实例。 默认为RecursiveCharacterTextSplitter。

Returns:

文档列表。

Return type:

列表[Document]

使用 CSVLoader 的示例