【问题标题】:split json file into object per file将 json 文件拆分为每个文件的对象
【发布时间】:2017-07-31 15:29:07
【问题描述】:

我有一个 JSON 文件,其结构如下:

{
"106" : {
      "id54011" : [
         {
            "partno1" : "16690617"
         },
         {
            "partno2" : "5899180"
         }
      ],
      "parts" : [
         "0899180",
         "16920617"
      ],
      "id5632" : [
         {
            "partno1" : "090699180"
         }
      ]
   },
   "560" : {
      "id9452" : [
         {
            "partno2" : "1569855"
         }
      ],
      "parts" : [
         "03653624",
         "15899855"
      ],
      "id578" : [
         {
            "partno3" : "0366393624"
         },
         {
            "partno4" : "0363213624"
         }
      ]
   }
}

我需要将此 JSON 拆分为多个文件,使用此方法:

每个 JSON 文件将包含一个对象。使用上面的示例文件,我应该以000106.json000560.json 结束。 (所有名称,必须有 6 位数字,所以必须添加零。)

为此,我尝试在 python 和 jq 中使用迭代分组器,但到目前为止还没有运气。

预期输出: JSON文件1,命名为000106.json

{
   "106" : {
       "id54011" : [
           {
               "partno1" : "16690617"
           },
           {
               "partno2" : "5899180"
           }
       ],
       "parts" : [
           "0899180",
           "16920617"
       ],
       "id5632" : [
           {
               "partno1" : "090699180"
           }
       ]
   }
}

JSON 文件 2,命名为 000560.json:

{
    "560" : {
        "id9452" : [
            {
                "partno2" : "1569855"
            }
        ],
        "parts" : [
            "03653624",
            "15899855"
        ],
        "id578" : [
            {
                "partno3" : "0366393624"
            },
            {
                "partno4" : "0363213624"
            }
        ]
    }
}

【问题讨论】:

标签: json python-3.x awk sed jq


【解决方案1】:

由于这个问题有 jq 和 awk 标签,我建议使用 jq 和 awk,如下所述:Split a JSON file into separate files

您可以轻松地在 jq 或 awk 中填充键名。

【讨论】:

    猜你喜欢
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    相关资源
    最近更新 更多