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

Windows10下jq1.5执行JSON转换时遇「Invalid numeric literal」错误求助

解决jq 1.5在Windows 10下的「Invalid numeric literal」错误

我来帮你一步步排查这个jq错误的问题,这个「Invalid numeric literal」错误通常和JSON格式、命令语法或者环境转义有关,咱们逐个分析:

  • 先补全并验证你的jq命令完整性
    从你给出的命令来看,结尾是cabi...明显被截断了,这种不完整的语法会直接导致jq解析失败,触发无效字面量的提示。你需要先把完整的过滤逻辑补全,确保所有的大括号{}、小括号()都正确配对,管道符|和合并运算符+的使用符合jq的语法规则。比如你嵌套处理.cabins[]的部分,要保证每一层的结构都闭合。

  • 检查输入JSON的合法性
    这个错误最常见的原因是你要处理的JSON本身存在格式问题,比如:

    • 数字格式不符合JSON规范(比如开头是0的整数、包含非法字符的数字)
    • 字符串使用了单引号(JSON要求必须用双引号)
    • 键值对末尾多了逗号,或者结构层级不匹配
      你可以先用jq自带的校验功能快速检查输入JSON:
    C:\import\Dreamlines\jq.exe . 你的输入JSON文件名.json
    

    如果这个命令报错,会直接指出JSON格式错误的具体位置,先修复这个问题再执行转换命令。

  • 处理Windows命令行的特殊字符转义问题
    Windows的CMD或PowerShell会对|、>、&等字符做特殊解析,直接在命令行输入长jq命令很容易出现转义错误。推荐的解决方法是:

    1. 把完整的jq过滤逻辑保存成一个后缀为.jq的脚本文件,比如transform.jq,内容示例(补全你缺失的部分):
      [{
        nid,
        includesservices: .includedServices,
        title,
        nights,
        company: .operator.shortTitle,
        zone: .zones[0].title,
        schiffsbeschreibung: .ship.factsAndFigures
      } + (.sails[] | ({
        sails_nid: .nid,
        arrival,
        departure
      } + (.cabins[] | {
        cabinname: .cabinType.title,
        cabintype: .cabinType.kindName,
        cabinprice: .price
      })))]
      
    2. 然后用jq执行这个脚本:
      C:\import\Dreamlines\jq.exe -f transform.jq 你的输入JSON文件名.json
      

    这样可以完全避免命令行转义带来的问题。

  • 考虑升级jq版本
    你使用的jq 1.5是比较旧的版本,存在一些已知的解析bug和兼容性问题。可以尝试升级到最新的稳定版(比如jq 1.6或更高),下载对应Windows架构的版本替换现有文件,再测试你的转换命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:34:34