Python 3: взять json и разбить его на более мелкие jsons - PullRequest
0 голосов
/ 27 июня 2018

Итак, у меня есть файл с json, который выглядит так:

{
      "a":{
             "ab":2,
             "cd":3
      },
      "b":{
             "ef":2,
             "gh":3
      },
      "c":{
             "ij":2,
             "kl":3
      }

}

Итак, в python я хотел бы импортировать этот json из файла, а затем разбить его на отдельные jsons, каждый в отдельной переменной, чтобы каждая переменная выглядела следующим образом:

json1 = {
             "a":{
                    "ab":2,
                    "cd":3
             }
        }
##etc.

И эти переменные json должны функционировать как переменные, которые можно преобразовать в объекты json с помощью таких методов, как json.load или json.dump.

Как это можно сделать?

1 Ответ

0 голосов
/ 27 июня 2018

После того, как вы импортировали файл с json.load, у вас есть просто старый старый Python dict:

with open('bigfile.json') as f:
    bigd = json.load('bigfile.json')

И если вы итерируете по items() для выбора, то вы получите пары ключ-значение.

for key, value in bigd.items():

И превращение пары ключ-значение обратно в однократный диктант является тривиальным.

    smalld = {key: value}

В этот момент у вас снова есть диктат, так что вы можете json.dump его.

    with open(f'smallfile-{key}.json', 'w') as f:
        json.dump(f, smalld)        

Или все, что вы хотите с ними сделать. Например, append каждый smalld в listodicts, или преобразовать его repr в ASCII-арт и отправить его в /dev/lpr0, или как угодно.

...