Python - Создание flask API, который вызывает другой API для получения двух файлов для сравнения и настройки службы - PullRequest
0 голосов
/ 31 января 2020

У меня есть программа, которая принимает два входных файла, которые я получаю из API. http://server:8000/extract/<filename>. Моей программе нужны два файла, поэтому мне нужно дважды вызвать API и сохранить файлы для использования моей программой и выдать вывод JSON, который должен быть сделан как сервис.

Я попытался сделать что-то похожее на приведенное ниже, однако не знал, как вызывать API, чтобы каждый раз получать файлы file1 и file2, и как сделать мою программу сервисом. Я очень новичок в python и пробую свои силы в этом.

import os
import json
import difflib
from flask import Flask, render_template, request, url_for, jsonify
import json
from json import JSONEncoder


app = Flask(__name__)

@app.route('/CompareCont/', methods=['POST', ['GET']])


with open('C:\\filepath\\2018temp_new.json', encoding="utf-8") as f1:
    f1_text = f1.read().splitlines()
with open('C:\\filepath\\2019tempnew.json', encoding="utf-8") as f2:
    f2_text = f2.read().splitlines()


def compareCont(f1_text, f2_text):   
# Find and print the diff:
    diffile= []
    diff = difflib.Differ()    
    for line in diff.compare(f1_text, f2_text):
         #json.dump(line,f, indent=2)
        if line.startswith(("-", "+", "?")):
            diffile.append(line)   
       #print (line, file=f)]updated=[]    
#lines = diff.splitlines()
    updated, deleted, inserted = [],[],[]
    lines = [line for line in diffile if line.find('"header"') == -1]
    for i in range(len(lines)):

        try:
            if lines[i+1].startswith('?'):
                if lines[i].startswith('-'):
                    updated.append(lines[i])
                    updated.append (lines[i+1])
            else:
                if lines[i].startswith('+'):
                    deleted.append(lines[i])
                elif lines[i].startswith('-'):
                    inserted.append(lines[i])
        except IndexError:
            continue
    lists = (["updated", "deleted", "inserted"])
    data = ({listname: globals()[listname] for listname in lists})

    return jsonify(data)

if __name__ == '__main__':
    app.run(host='0.0.0.0',port=5000,threaded=True)

Мы получим файл 2019temp.json и 2018temp.json (json версия любого файла с именем pdf) из http://server: 8000 / экстракт / . Как мне вызвать API извлечения, чтобы получить два файла и обработать его в моей программе, используя мой сервис

...