问 题
A文件夹 里面有
1.json
2.json
3.json
.....
格式为
{
"hello": "hello",
"data": [
{
"id": "123456",
"create_time": "2016-03-28 11:41:00",
"phone": "138888****",
"name": "aaa"
},
{
"id": "456789",
"create_time": "2016-03-28 11:41:00",
"phone": "137777****",
"name": "bbb"
}
]
}
遍历A文件夹
合并data内容
输出1个json和csv
解决方案
Python2:
import os
import csv
import glob
import json
data = []
for fname in glob.glob(os.path.join('A', '*.json')):
with open(fname) as f:
jf = json.loads(f.read())
data.extend(jf['data'])
with open('output.json', 'w') as f:
print >>f, json.dumps(data, sort_keys=True, indent=4, separators=(',', ': '))
with open('output.csv', 'w') as f:
writer = csv.writer(f)
writer.writerow([key for key, value in data[0].items()])
for d in data:
writer.writerow([value for key, value in d.items()])
Python3:
import os
import csv
import glob
import json
data = []
for fname in glob.glob(os.path.join('A', '*.json')):
with open(fname) as f:
jf = json.loads(f.read())
data.extend(jf['data'])
with open('output.json', 'w') as f:
print(json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ')), file=f)
with open('output.csv', 'w') as f:
writer = csv.writer(f)
writer.writerow([key for key, value in data[0].items()])
for d in data:
writer.writerow([value for key, value in d.items()])
對於你說的合併,我這邊僅僅是將資料一筆一筆的疊加上去,並沒有作 id 檢查等處理。
csv 的輸出要求,可能也要視你想要的格式進行調整。
下面是相關的一些文檔,看完後對你會很有幫助:
扫一扫关注IT屋
微信公众号搜索 “ IT屋 ” ,选择关注与百万开发者在一起