1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117
|
import json import urllib import urllib2 import requests import re
QUESTION_BANK_ID=77 KNOWLEDGE_POINT_IDS=['1'] QUESTION_ADD_URL='http://192.168.0.100:8882/api/v1/questions/add' X_USERID='2'
def commonChange(question): del question['useCount'] del question['id'] question['questionBankId']= QUESTION_BANK_ID
def pushData(json_data,url): headers={'content-type': 'application/json', 'X-UserId': X_USERID} response = requests.post(url, data=json_data, headers=headers) if response.status_code: print 'insert succeed'
def formatQuestion(question): commonChange(question) if question['questionType'] == 0: formatJudgeQuestion(question) elif question['questionType']==1: formatSingleChoiceQuestion(question) elif question['questionType']==2: formatMuitlChoiceQuestion(question) elif question['questionType']==3: formatFillQuestion(question) elif question['questionType']==4: formatAnswerQuestion(question) elif question['questionType']==5: formatCodeQuestion(question) else: print 'error can\'t parse' def formatSingleChoiceQuestion(question): print 'format 单选题' question['knowledgePointIds']=KNOWLEDGE_POINT_IDS for i in range(len(question['tags'])): del question['tags'][i]['id'] for i in range(len(question['optionDTOS'])): del question['optionDTOS'][i]['id'] question['options'] = question['optionDTOS'] del question['optionDTOS']
pushData(json.dumps(question),QUESTION_ADD_URL)
def formatJudgeQuestion(question): print 'format 判断题' del question['optionDTOS'] for i in range(len(question['tags'])): del question['tags'][i]['id'] pushData(json.dumps(question),QUESTION_ADD_URL) def formatMuitlChoiceQuestion(question): print 'format 多选题'
def formatFillQuestion(question): print 'format 填空题' del question['optionDTOS'] question['knowledgePointIds']=KNOWLEDGE_POINT_IDS parseStr = question['stem'] blankID='' blanks=[] while re.match(r'.*(__.{1}__).*',parseStr): blankID=re.match(r'.*(__.{1}__).*',parseStr).group(1) parseStr = re.sub(blankID,'',parseStr) blanks.append({ "blankAnswer":["sorry no answer avaiable for "+blankID], "blankId":blankID })
question['blanks'] = json.dumps(blanks) pushData(json.dumps(question),QUESTION_ADD_URL)
def formatAnswerQuestion(question): print 'format 简答题' pushData(json.dumps(question),QUESTION_ADD_URL)
def formatCodeQuestion(question): print 'format 代码题'
def main(fileName): with open(fileName,'r') as f: load_json = json.load(f) question_size = load_json['size'] for i in range(question_size): formatQuestion(load_json['res']['questions'][i])
if __name__=="__main__": main('./quiz.json')
|