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... 否则它会把第一行的数据误认为是表头。
- 作用:这是一个字典
5215

被折叠的 条评论
为什么被折叠?



