Я пытаюсь классифицировать большой кусок данных JSON в разные файлы на основе их атрибутов.Каждая запись в файле JSON имеет ключ «Регион», и я хотел бы хранить всю информацию о конкретном регионе в отдельных файлах.Например, если у нас есть регионы ['US', 'Canada', 'Korea']
, я хочу получить файлы US.csv, Canada.csv, and Korea.csv
.(Я имею дело с ~ 15 регионами в реальных данных)
Порядок записей в файле JSON не сортируется по регионам, поэтому я не хочу открывать / закрывать каждый раз, когда я записываю запись.
Сейчас я делаю что-то вроде
`with open('US.csv', 'a') as usOut, \
open('Canada.csv', 'a') as caOut, \
open('Korea.csv', 'a') as krOut:
fileNameMap = {'US': usOut, 'Canada': caOut, 'Korea': krOut}
for entry in jsonData:
fileNameMap[entry['Region']].write(...)
`
Однако, поскольку я имею дело со многими регионами, существует большое количество дублирующихся кодов для получения with open ...
для каждого региона.Мне было интересно, есть ли более элегантное решение для этого.