【问题标题】:Flask Error json not serialized烧瓶错误json未序列化
【发布时间】:2017-07-18 10:11:06
【问题描述】:

我创建了一个使用命令行并调用程序的应用程序。

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 时,我想要得到的是应用程序上的 PRETTY JSON OUTPUT。我试图显示输出,但它不是漂亮的 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

【问题讨论】:

    标签: python json python-3.x flask


    【解决方案1】:

    您需要 wait 完成您的 subprocess 才能读取输出。这就是为什么有时您会收到错误,有时不会,因为有时流程完成并且您有输出。

    【讨论】:

      猜你喜欢
      • 2014-11-25
      • 1970-01-01
      • 1970-01-01
      • 2019-11-29
      • 2021-04-29
      • 2013-08-19
      • 2011-04-10
      • 2012-12-03
      • 1970-01-01
      相关资源
      最近更新 更多