You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jq转换英国公司PSC JSON数据为CSV报错问题咨询

错误原因分析
  • 输入文件为JSON Lines格式(每行对应1条独立JSON对象),并非包裹在方括号中的标准JSON数组。原命令开头使用的map()是仅适用于数组的操作符,直接作用于单个JSON对象时就会触发索引类报错。
  • 所需提取的字段存在嵌套结构:地址类字段(address_line_1、country、locality等)均嵌套在顶层address对象下,出生日期相关的month、year字段嵌套在顶层date_of_birth对象下,原命令直接读取顶层对应字段无法获取有效值,也会触发取值错误。
正确转换方案

针对1GB大小的大文件,直接使用以下jq命令完成转换即可,兼顾性能与字段兼容性:

jq -nr '
# 输出CSV表头
("company_number,address_line_1,country,locality,postal_code,premises,ceased_on,country_of_residence,month,year,etag,kind"),
# 逐行处理所有JSON对象
inputs | [
    .company_number,
    .address.address_line_1,
    .address.country,
    .address.locality,
    .address.postal_code,
    .address.premises,
    .ceased_on,
    .country_of_residence,
    .date_of_birth.month,
    .date_of_birth.year,
    .etag,
    .kind
] | map(. // "") | @csv
' in.json > out.csv

命令说明

  • -n参数:以null作为初始输入,配合inputs关键字读取所有行的JSON对象,不会遗漏第一行数据
  • map(. // ""):处理字段缺失场景,将不存在的字段值统一替换为空字符串,避免CSV列错位
  • 嵌套字段统一通过层级路径取值,匹配原始数据的结构规则

内容的提问来源于stack exchange,提问作者Abigail Fitzsimmons

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:06:00