langchain的CSVLoader

from langchain_community.document_loaders import CSVLoader


loader = CSVLoader(
    file_path="./data/stu.csv",
    csv_args={
        "delimiter": ",",       # 指定分隔符
        "quotechar": '"',       # 指定带有分隔符文本的引号包围是单引号还是双引号
        # 如果数据原本有表头,就不要下面的代码,如果没有可以使用
        "fieldnames": ['name', 'age', 'gender', '爱好']
    },
    encoding="utf-8"            # 指定编码为UTF-8
)

# 批量加载 .load()   ->  [Document, Document, ...]
# documents = loader.load()
#
# for document in documents:
#     print(type(document), document)

# 懒加载  .lazy_load()  迭代器[Document]
for document in loader.lazy_load():
    print(document)

这段代码是使用 LangChain 库中的 CSVLoader 来加载 CSV 文件的。CSVLoader 的底层其实是对 Python 内置的 csv 模块中 csv.DictReader 的封装,目的是把 CSV 文件里的一行行数据转换成 LangChain 里的 Document(文档)对象。

1. 必填参数

在你的这段代码中,只有一个参数是绝对必填的:

  • file_path: 文件的路径(比如 "./data/stu.csv")。必须告诉它去哪里找这个 CSV 文件。

2. 你代码里出现的选填参数解释

  • encoding="utf-8"

    • 作用:指定读取文件时强制使用的编码格式。
    • 何时使用:非常建议加上!如果你的 CSV 里有中文,如果不显式指定 "utf-8"(在 Windows 电脑上经常默认使用 GBK 读取),可能会导致读取到一堆乱码。
  • csv_args

    • 作用:这是一个字典 Dict。因为 CSVLoader 底层依赖 Python 的标准 csv 库,所以这个字典里的参数最终都会透传给底层的解释器(具体来说是传给 csv.DictReader)。
    • 里面各个选项的含义
      • "delimiter": ","分隔符。表示你的 CSV 是用什么符号把列分开的。默认是逗号 ,。如果是用制表符分开的 TSV 文件,这里可以填 "\t"
      • "quotechar": '"'引用符。有时候某一个格子的内容里本身就带逗号(例如一段话是把 "苹果, 香蕉" 作为一个整体存下来),此时 CSV 生成工具会用双引号包住它来防止错乱识别。这个参数告诉它遇到什么符号包围的内容应该当成一整个字符串。
      • "fieldnames": ['name', 'age', 'gender', '爱好']表头列表
        • 👉注意:如果你的 CSV 文件的第一行已经自带了表头(即姓名、年龄等),请删掉或注释掉这一行。
        • 👉何时需要它:如果你的 CSV 第一行上来就是数据(比如直接写着 "张三, 18, 男, 打篮球"),你就必须用这个参数告诉系统:第一列叫 name,第二列叫 age... 否则它会把第一行的数据误认为是表头。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值