pyarrow.csv.ParseOptions#
- class pyarrow.csv.ParseOptions(delimiter=None, *, quote_char=None, double_quote=None, escape_char=None, newlines_in_values=None, ignore_empty_lines=None, invalid_row_handler=None)#
Bases:
_Weakrefable用於解析 CSV 檔案的選項。
- 引數:
- delimiter1-character
str, optional (default ‘,’) CSV 資料中用於分隔各個單元格的字元。
- quote_char1-character
strorFalse, optional (default ‘”’) 用於可選地引用 CSV 值的字元(如果禁止引用則為 False)。
- double_quotebool, optional (default
True) 帶引號的 CSV 值中兩個引號是否表示資料中的一個引號。
- escape_char1-character
strorFalse, optional (defaultFalse) 用於可選地轉義特殊字元的字元(如果禁止轉義則為 False)。
- newlines_in_valuesbool, optional (default
False) CSV 值中是否允許換行符。將其設定為 True 會降低多執行緒 CSV 讀取的效能。
- ignore_empty_linesbool, optional (default
True) CSV 輸入中是否忽略空行。如果為 False,空行將被解釋為包含單個空值(假設為單列 CSV 檔案)。
- invalid_row_handler
callable(), optional (defaultNone) 如果不是 None,則此物件將針對每個解析失敗(由於列數不匹配)的 CSV 行呼叫。它應接受一個 InvalidRow 引數並返回“skip”或“error”,具體取決於期望的結果。
- delimiter1-character
示例
從位元組物件定義一個示例檔案
>>> import io >>> s = ( ... "animals;n_legs;entry\n" ... "Flamingo;2;2022-03-01\n" ... "# Comment here:\n" ... "Horse;4;2022-03-02\n" ... "Brittle stars;5;2022-03-03\n" ... "Centipede;100;2022-03-04" ... ) >>> print(s) animals;n_legs;entry Flamingo;2;2022-03-01 # Comment here: Horse;4;2022-03-02 Brittle stars;5;2022-03-03 Centipede;100;2022-03-04 >>> source = io.BytesIO(s.encode())
從檔案讀取資料,跳過帶有註釋的行並定義分隔符
>>> from pyarrow import csv >>> def skip_comment(row): ... if row.text.startswith("# "): ... return 'skip' ... else: ... return 'error' ... >>> parse_options = csv.ParseOptions(delimiter=";", invalid_row_handler=skip_comment) >>> csv.read_csv(source, parse_options=parse_options) pyarrow.Table animals: string n_legs: int64 entry: date32[day] ---- animals: [["Flamingo","Horse","Brittle stars","Centipede"]] n_legs: [[2,4,5,100]] entry: [[2022-03-01,2022-03-02,2022-03-03,2022-03-04]]
- __init__(*args, **kwargs)#
方法
屬性
CSV 資料中用於分隔各個單元格的字元。
帶引號的 CSV 值中兩個引號是否表示資料中的一個引號。
用於可選地轉義特殊字元的字元(如果禁止轉義則為 False)。
CSV 輸入中是否忽略空行。
用於無效行的可選處理程式。
CSV 值中是否允許換行符。
用於可選地引用 CSV 值的字元(如果禁止引用則為 False)。
- delimiter#
CSV 資料中用於分隔各個單元格的字元。
- double_quote#
帶引號的 CSV 值中兩個引號是否表示資料中的一個引號。
- equals(self, ParseOptions other)#
- 引數:
- 返回:
- escape_char#
用於可選地轉義特殊字元的字元(如果禁止轉義則為 False)。
- ignore_empty_lines#
CSV 輸入中是否忽略空行。如果為 False,空行將被解釋為包含單個空值(假設為單列 CSV 檔案)。
- invalid_row_handler#
用於無效行的可選處理程式。
如果不是 None,則此物件將針對每個解析失敗(由於列數不匹配)的 CSV 行呼叫。它應接受一個 InvalidRow 引數並返回“skip”或“error”,具體取決於期望的結果。
- newlines_in_values#
CSV 值中是否允許換行符。將其設定為 True 會降低多執行緒 CSV 讀取的效能。
- quote_char#
用於可選地引用 CSV 值的字元(如果禁止引用則為 False)。
- validate(self)#