CSVDictParser¶
- class torchdata.datapipes.iter.CSVDictParser(source_datapipe: IterDataPipe[Tuple[str, IO]], *, skip_lines: int = 0, decode: bool = True, encoding: str = 'utf-8', errors: str = 'ignore', return_path: bool = False, **fmtparams)¶
接受一个由文件名和 CSV 数据流元组组成的数据管道,读取并按行返回 CSV 文件中的内容(函数名称:
parse_csv_as_dict
)。默认情况下,每个输出都是一个 Dict,但它取决于
fmtparams
。每个文件的首行(除非被跳过)将用作标题;标题行中的内容将用作从剩余行生成的 Dict 的键。- 参数:
source_datapipe – 具有文件名和 CSV 数据流元组的源数据管道
skip_lines – 在每个文件开头要跳过的行数
strip_newline – 如果
True
,则将剥离换行符decode – 如果
True
,这将根据指定的encoding
解码文件的内容encoding – 文件的字符编码 (default=’utf-8’)
errors – 解码时使用的错误处理方案
return_path – 如果
True
,则每行将返回路径和内容的元组,而不是仅返回内容
示例
>>> from torchdata.datapipes.iter import FileLister, FileOpener >>> import os >>> def get_name(path_and_stream): >>> return os.path.basename(path_and_stream[0]), path_and_stream[1] >>> datapipe1 = FileLister(".", "*.csv") >>> datapipe2 = FileOpener(datapipe1, mode="b") >>> datapipe3 = datapipe2.map(get_name) >>> csv_dict_parser_dp = datapipe3.parse_csv_as_dict() >>> list(csv_dict_parser_dp) [{'key': 'a', 'item': '1'}, {'key': 'b', 'item': '2'}]