将json文件拆分为每个文件的对象

时间:2017-03-10 10:14:15

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

我有一个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"
            }
        ]
    }
}

1 个答案:

答案 0 :(得分:0)

由于这个问题同时包含jq和awk标签,我将重新使用jq和awk,如下所述:Split a JSON file into separate files

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

相关问题