我正在尝试根据其属性将大量JSON数据分类为不同的文件。 JSON文件中的每个条目都有键“ Region”,我想将有关特定区域的所有信息存储在单独的文件中。例如,如果我们有区域['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 ...
会导致很多代码重复。我想知道是否有一个更优雅的解决方案。
答案 0 :(得分:0)
一个选项可能就是这样,但是请根据您的具体情况替换我在此处编写的字段:
countries = {'US':None,'Canada':None}
for country in countries:
countryFile = country+'.txt'
with open(countryFile, 'w') as f:
f.write('cool')
countries[country] = f
f.close()