Kaggle CLI 输出格式指南:--format、CSV 与字段投影(Projection)完整解析

发布时间:2026/9/28 3:23:38
Kaggle CLI 输出格式指南:--format、CSV 与字段投影(Projection)完整解析 CLI开发工具数据科学【免费下载链接】kaggle-apiOfficial Kaggle CLI项目地址https://gitcode.com/gh_mirrors/ka/kaggle-api点击查看免费下载本文以 Kaggle 官方 CLI本项目 kaggle-api的 输出格式文档 为主线系统讲解--csv-v与--format两种输出选项的用法、三者csv/table/json的区别、gcloud 风格字段投影的语法与解析原理以及互斥规则与适用命令清单。读完本文你将能够针对 competitions、datasets、kernels、models、forums、benchmarks 等命令按需选择输出格式并通过投影精确裁剪字段、控制列顺序方便在脚本、自动化流水线与 LLM 数据处理中直接消费 CLI 输出。输出格式选项概览Kaggle CLI 中凡是列出信息的命令都支持通过输出选项控制结果呈现方式。当前项目提供两条并行的控制路径选项说明取值-v/--csv历史遗留选项将输出渲染为逗号分隔值CSV布尔开关--format统一的输出格式选项可附带字段投影csv、table、json支持格式(字段1,字段2)投影语法在源码层面--csv与--format被定义在一个argparse 互斥组中cli.py 的_add_output_format_args()将二者加入add_mutually_exclusive_group()这正是两者不能同时使用这一约束的实现来源而底层格式枚举 OutputFormat 定义了CSV、TABLE、JSON三个取值_get_output_format()kaggle_api_extended.py负责把-v/--csv或--format归一化为该枚举供后续渲染逻辑统一调度。--csv或-v历史遗留的 CSV 输出在--format引入之前许多命令通过-v或--csv选项将输出从格式化表格切换为逗号分隔值便于重定向到文件或管道给其他工具处理。kaggle competitions list --csv需要留意的是-v在不同命令上下文中的语义可能不同对大多数列表类命令而言它是--csv的别名但在kaggle competitions submit、kaggle kernels push等命令中-v被用作--version代码版本号的简写见 cli.py、cli.py。因此在使用缩写形式前建议先通过kaggle command --help确认该命令下-v的确切含义。--format统一输出格式选项--format是较新引入的统一输出格式入口接受以下取值csv以逗号分隔值输出table以格式化表格输出默认json以 JSON 输出。三个取值与源码中的 OutputFormat 枚举一一对应当传入的格式名无法识别时_get_output_format()会回退到TABLE默认值kaggle_api_extended.py。kaggle competitions list --format csv kaggle competitions list --format table kaggle competitions list --format jsonCSV 与 Table适用于人眼阅读或轻量级脚本解析字段顺序与列头由命令自身定义。JSON适用于程序化消费。对大多数命令JSON 输出是一行一个对象的数组对象的键对应各列头对topics show这类详情命令则返回结构化对象{ topic: { ... }, comments: [ ... ] }实际渲染统一由 print_results() 完成先经_get_output_format()决定CSV/JSON/TABLE分支再调用print_csv、print_json或print_table输出测试用例也覆盖了该路径例如 test_discussions_cli.py 验证topics show --format json会得到包含topic与comments的结构化 JSON。字段投影Projection精确裁剪输出--format支持可选的gcloud 风格字段选择投影在格式名后用括号追加逗号分隔的字段列表即可将输出限制为指定字段并控制字段的先后顺序。投影对csv、table、json三种格式全部适用。# 仅以表格显示 competitions 的 ref 与 reward 列 kaggle competitions list --format table(ref,reward) # 仅导出 team submissions 的 id 与 publicScore 到 JSON kaggle competitions team-submissions --format json(id,publicScore) team_id # 仅导出 dataset 文件的 name 与 size 到 CSV kaggle datasets files -d zillow/zecon --format csv(name,size)字段可以用两种方式指定字段名field name如totalBytes显示标签display label如size它对应totalBytes的列头。如果指定了无法识别的字段CLI 会报错并列出该命令允许的全部字段。这一行为的底层实现在 kaggle_api_extended.py_resolve_projection()同时维护label_to_field与field_to_label两张映射表投影项先按标签匹配、再按字段名匹配均未命中即抛出ValueError(Unknown field in projection: ...)错误信息中附带的允许字段列表来自fields labels的并集排序。投影语法解析原理--format字符串的解析由模块级函数 _parse_format() 完成无括号时返回(格式名, [])例如json→(json, [])有括号时按第一个(切分要求字符串必须以)结尾括号内部按逗号切分并逐个去空白例如json(status, current_version_number)→(json, [status, current_version_number])若括号未闭合如json(status抛出ValueError: Malformed --format value。以上行为均有单元测试佐证test_dataset_status.py 覆盖了纯格式名、单字段、多字段带空白、以及畸形输入抛错四类用例同时 test_dataset_status.py 验证了--format json(bogus)传入不存在的投影字段会触发ValueError。特殊场景Topics Show 的双对象投影topics show同时输出一个父级话题topic和一组评论comments。此时投影会同时应用于两类对象匹配 topic 字段的投影作用于 topic 输出匹配 comment 字段的投影作用于评论输出。kaggle forums topics show 123 --format json(title,content)该命令中title是 topic 字段保留在 topic 输出中content是 comment 字段保留在 comments 输出中{ topic: { title: Test Title }, comments: [ { content: Comment Content } ] }测试 test_discussions_cli.py 精确断言了这一行为投影后topic仅剩title键id被剔除comments[0]仅剩content键id被剔除。互斥规则--csv与--format不能同时使用-v/--csv与--format互斥不可同时指定。若同时使用CLI 会报错kaggle competitions list --csv --format csv # Error: argument --format: not allowed with argument -v/--csv该错误正是 argparse 互斥组cli.py在解析阶段产生的标准报错属于命令解析期错误无需请求服务器即可触发。相应行为也有测试覆盖例如 test_discussions_cli.py 断言同时传-v与--format会抛出 argparse 错误test_cli_search.py 对search命令做了同样的验证。支持--format的命令清单以下命令同时支持--csv遗留与--format两种选项Competitionskaggle competitions listkaggle competitions fileskaggle competitions submissionskaggle competitions leaderboardkaggle competitions team-submissionskaggle competitions episodeskaggle competitions pageskaggle competitions topic-messageskaggle competitions topics listkaggle competitions topics showDatasetskaggle datasets listkaggle datasets fileskaggle datasets topics listkaggle datasets topics showKernelskaggle kernels listkaggle kernels fileskaggle kernels topics listkaggle kernels topics showModelskaggle models listkaggle models topics listkaggle models topics showkaggle models instances listkaggle models instances fileskaggle models instances versions listkaggle models instances versions filesForumskaggle forums listkaggle forums topics listkaggle forums topics showBenchmarkskaggle benchmarks topics listkaggle benchmarks topics showQuotakaggle quota在 CLI 参数装配层上述命令的解析器均调用了 _add_output_format_args()例如 competitions 的 list/files/submissions/leaderboard/team-submissions/episodes/pages/topic-messagescli.py、datasets 的 list/filescli.py、kernels 的 list/filescli.py、models 的 list 与 instances 系列cli.py、quotacli.py、forums listcli.py等而topics list/show类命令则复用共享解析器 _get_shared_topics_parser() 与 _get_shared_competition_topics_parser()同样挂载了输出格式参数。此外kaggle datasets status、kaggle search等命令也支持--format见 test_cli_datasets.py、test_cli_search.py。实战建议与注意事项脚本消费优先用 JSON 投影--format json(field1,field2)配合jq等工具可以直接提取所需字段避免解析整张表格字段顺序由投影列表决定输出结构稳定可预期。CSV 场景需要与旧脚本兼容或导出到表格软件时使用--csv或-v注意不要在同时需要--format的命令中混用二者。Table 默认行为不传任何格式选项时默认输出table适合人眼阅读投影同样可用于 table以精简列数。字段名不记得时故意传一个不存在的字段名CLI 报错信息会列出该命令允许的全部字段含标签与字段名可作为字段清单的快速查询手段。Topics show 的投影是双对象的投影列表会同时匹配 topic 与 comment 两类字段未匹配的字段将被剔除务必核对两类对象各自保留的键。-v语义随命令变化列表命令中-v是--csv但competitions submit、kernels push等命令中-v是版本号参数使用前先查看该命令的--help。延伸阅读输出格式官方文档本文所依据的原始文档CLI 参数定义--csv与--format互斥组的实现格式解析与投影实现_get_output_format()与_resolve_projection()输出渲染入口print_results()的三格式分发投影语法解析_parse_format()及 gcloud 风格语法说明话题投影测试topics show --format json(title,content)的双对象投影断言格式解析单元测试_parse_format()的合法与非法输入用例。赞分享CLI开发工具数据科学【免费下载链接】kaggle-apiOfficial Kaggle CLI项目地址https://gitcode.com/gh_mirrors/ka/kaggle-api点击查看免费下载相关推荐FOLib/folib查询结果投影Projection与数据字段过滤策略FOLib/folib查询结果投影Projection与数据字段过滤策略 在AI研发过程中数据查询往往返回大量冗余字段不仅浪费网络带宽还会增加数据处理的后端供应链安全包管理器开发者工具chezmoi 的 --format 输出格式标志json 与 yaml 的完整使用指南chezmoi 的 format 输出格式标志json 与 yaml 的完整使用指南 format 短选项 f 是 chezmoi 中一组查询类命令共用的开发工具CLI配置管理Rust By Practice 实战解析println! 与 format! 格式化输出宏完全指南Rust By Practice 实战解析println! 与 format! 格式化输出宏完全指南 std::fmt 是 Rust 标准库中负责格式化输出的文档教程示例工程上一篇京东茅台抢购终极指南如何用Python脚本提升你的成功率下一篇企业微信Java SDK终极实战200接口的高效集成方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考