读取,写入 json 文件代码如下:
#-*- coding:utf-8 -*-
import json
import time
import codecs
import demjson
import logging
#写入 json 文件
def store(data):
with open('JavaScript1.json', 'w') as json_file:
# logging.error(": " + json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ')).encode('utf-8', 'ignore'))
# json_file.write(json.dumps(data, sort_keys=True, indent=4, separators=(',', ': ')).encode('utf-8', 'ignore'))
json_file.write(json.dumps(data, sort_keys=True, indent=4, ensure_ascii=False).encode('utf8'))
#读取 json 文件
def read1():
with open('JavaScript.json', 'r') as f:
data = json.load(f)
return data
# jsdata = json.dumps(data, sort_keys=True, indent=4, ensure_ascii=False)
# f.close()
# return jsdata
def getMsg(msg, k):
j = k
if msg.has_key('action'):
print msg["action"]
msg["chapter"] = j
if msg.has_key("zuan_number") == False:
msg["zuan_number"] = 0 #遗漏
if msg.has_key("grow_number") == False:
msg["grow_number"] = 0
#判断习题
if msg.has_key('exercises') and msg["exercises"] == True:
wrongArr = msg["wrong"]
correntArr = msg["correct"]
for wa in wrongArr: #遍历错误数组
if wa.has_key("action"):
j = j + 1
wa["zuan_number"] = 0
wa["grow_number"] = 0
wa["chapter"] = j
wrongArr[len(wrongArr)-1]["again"] = True #最后一个加 again
for ca in correntArr: #遍历正确数组
if ca.has_key("action"):
j = j + 1
ca["chapter"] = j
if ca.has_key("zuan_number") == False:
ca["zuan_number"] = 0 #遗漏
if ca.has_key("grow_number") == False:
ca["grow_number"] = 0
j = j+1
# return j
if __name__ == "__main__":
data = read1()
#对读取到的数据进行处理
array = []
for k in range(0, len(data.keys())):
p = str(k+1)
array.append(p)
print array
print data.keys()
arr = array
for i in arr:
item = data[i] #节数据
print len(item)
j = 1
for q in range(0, len(item)):
msg = item[q]
# for msg in item: #message,消息
if msg.has_key('action'):
print msg["action"]
msg["chapter"] = j
if msg.has_key("zuan_number") == False:
msg["zuan_number"] = 0 #遗漏
if msg.has_key("grow_number") == False:
msg["grow_number"] = 0
#判断习题
if msg.has_key('exercises') and msg["exercises"] == True:
wrongArr = msg["wrong"]
correntArr = msg["correct"]
for wa in wrongArr: #遍历错误数组
if wa.has_key("action"):
j = j + 1
wa["zuan_number"] = 0
wa["grow_number"] = 0
wa["chapter"] = j
wrongArr[len(wrongArr)-1]["again"] = True #最后一个加 again
for ca in correntArr: #遍历正确数组
if ca.has_key("action"):
j = j + 1
ca["chapter"] = j
if ca.has_key("zuan_number") == False:
ca["zuan_number"] = 0 #遗漏
if ca.has_key("grow_number") == False:
ca["grow_number"] = 0
j = j+1
#最后一个元素加 record=true,判断有 action 没,有过,没写下一个
item[len(item)-1]["record"] = True
if item[len(item)-1].has_key("action") == False:
item[len(item)-1]["action"] = "下一个"
getMsg(item[len(item)-1], j)
print sorted(data.keys())
print array
store(data) #对处理完之后的数据写入