Возвращение из колбы не так, как ожидалось - PullRequest
0 голосов
/ 22 декабря 2019

Я пытаюсь создать колбу, которая связывается с базой данных, используя RESTapi. Это работает в определенной степени. Однако формат не отображается правильно, когда я тестирую команду curl на внутреннем сервере.

При запуске:

curl http://127.0.0.1:5000/Stocks

Я ожидаю получить плоский возврат, такой как:

{"Name": "XYZ Corp", "Price": 123.23, "Stock": "XYZ", "id": 1}

Однако я получаю:

{

"Имя": "XYZ Corp",

"Цена": 123.23,

"Акции": "XYZ",

" id ": 1

}

Я использовал следующий код, чтобы попытаться получить возврат, чтобы быть плоским, но это не таккажется, работает правильно:

# StocksDAO
def findById(self, id):
    cursor = self.db.cursor()
    sql = "SELECT * FROM Stocks where id = %s"
    values = (id,)

    cursor.execute(sql, values)
    result = cursor.fetchone()
    return self.convert_Res(result)

# ..........

def convert_Res(self, result):
    colNames = ["id", "Stock", "Name", "Price"]
    item = {}

    if result:
        for i, colName in enumerate(colNames):
            value = result[i]
            item[colName] = value
    return item

Есть ли какие-либо предложения о том, как получить код для генерации плоского возврата?

Редактировать: код Flask для приведенных выше разделов:

#!flask/bin/python

from flask import Flask, jsonify, request, abort, make_response
from flask_cors import CORS
from Stocks_DB import stocksDAO

app = Flask(__name__, static_url_path="", static_folder=".")
CORS(app, support_credentials=True)

@app.route("/")

@app.route("/Stocks/<int:id>")
def getById(id):
    sel_stock = stocksDAO.findById(id)
    return jsonify(sel_stock)

1 Ответ

1 голос
/ 22 декабря 2019

Из jsonify DOCs

Ответ этой функции будет довольно печатным, если для параметра конфигурации JSONIFY_PRETTYPRINT_REGULAR задано значение True или приложение Flask работает в режиме отладки. Сжатое (не очень) форматирование в настоящее время означает отсутствие отступов и пробелов после разделителей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...