我创建了一个应用程序,它使用命令行并调用程序。你知道吗
from flask import Flask, jsonify, make_response, request
import os
import subprocess
import json
app = Flask(__name__)
@app.route('/api/v1.0/qanda/', methods=['GET'])
def people_api():
text = request.args.get('text')
Answer = subprocess.Popen(['programcall', repr(text)],stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate()[0]
if text is None:
make_response(jsonify({'error': 'Missing text parameter'}), 400)
return jsonify(Answer)
app.run('0.0.0.0')
我试图得到的是当我点击浏览器URL时应用程序上漂亮的JSON输出。我试图显示输出,但它不是很好的Json,而且大多数时候jsonify都会给出错误:Json没有序列化。你知道吗
请告诉我如何使用我的应用程序显示正确的结果
我能理解的一个错误是:
Answer = Answer + subprocess.Popen(['programcall', repr(text)],stdout=subprocess.PIPE,stderr=subprocess.PIPE).communicate()[0]
TypeError: can only concatenate list (not "bytes") to list
在读取输出之前,需要wait完成
subprocess
。这就是为什么有时会出现错误,有时不会,因为有时过程完成了,您就有了输出。你知道吗相关问题 更多 >
编程相关推荐