def run_api(request, session): ''' 运行api,并返回response :param request: :param session: :return: ''' api_file = os.path.join(os.path.dirname(request.module), 'api', 'api.json') # 接口数据文件 apis = read_json(api_file) HOST = ENV.get(tags.ENV_BASE_URL) # 获取上一个fixtrue的name,比如 api_name = request._parent_request.fixturename expr = '$.[?(@.name=="{}]")]'.format(api_name) api = jsonpath.jsonpath(apis, expr) url = HOST + api['url'] params = api['params'] data_json = api['data_json'] data = api.get('data', None) method = api['method'] r = session.request(method, url, data=data, json=data_json, params=params) # r = session.post(url, json=data_json, params=params) # assert r.json().get('status') == 3200 return r
def load(self, inpath='./data/news_content.json'): data = read_json(inpath) all_sents = [] for news in data: for frag in news: sents = frag['sents'] all_sents.append(sents) print('finished loading all sentences') return all_sents
def read_hotpot_perturbations(split): assert split in ['bridge', 'yesno'] prefix = f'hotpot_counterfactuals/{split}' fnames = os.listdir(prefix) fnames.sort() annotation_dict = OrderedDict() for i, fname in enumerate(fnames): meta = read_json(join(prefix, fname)) meta['quick_id'] = str(i) annotation_dict[meta['id']] = meta return annotation_dict
def extract(inpath='./data/news_content.json',outpath='./data/news_views.json'): data = read_json(inpath) all_sents = [] for news in data: for frag in news: para = frag['para'] sents = frag['sents'] all_sents.append(sents) views_infos = extract_views(all_sents) views_infos = process_views(views_infos) write_json(outpath,views_infos) print(os.path.abspath(os.path.curdir)) print('successfully extract views from all news...')
def read_yesno_perturbations(): prefix = 'yesno_perturb' fnames = os.listdir(prefix) fnames.sort(key=lambda x: int(x.split('-')[0])) annotation_dict = OrderedDict() for fname in fnames: meta = read_json(join(prefix, fname)) if not (meta['flag_ready'] and meta['flag_including']): continue quick_id = fname.split('-')[0] meta['quick_id'] = quick_id annotation_dict[meta['id']] = meta return annotation_dict
def image(file_id): thumb = True if '/thumb/' in request.url_rule.rule else False file_obj = File().get(file_id) info = read_json('%s.json' % file_obj.file_id) storage = app.config.get('STORAGE', 'local') if storage == 'local': return send_file(os.path.join(app.config.get('FILE_PATH'), info['message']['document']['file_id']), mimetype = info['message']['document'].get('mime_type', 'text/plain'), attachment_filename = info['message']['document']['file_name']) elif storage == 's3': scheme = 'http' filename = '/'.join([ app.config.get('MEDIA_FOLDER', 'media'), info['message']['document']['file_id'] ]) if thumb: filename = '%s_200x200' % filename return redirect('%s://%s.%s/%s' % (scheme, app.config.get('S3_BUCKET'), app.config.get('S3_SERVER'), filename))
def build_file_dict(self): prefix = 'hpqa_bridge_mannual_predictions.json' fname = join('interpretations', prefix) return read_json(fname)