mysql - Flask SQL-Alchemy 查询为我的数据库中存在的数据返回空值。可能是什么原因

标签 mysql python-3.x flask mysql-workbench flask-sqlalchemy

我的 python 程序旨在查询我的 MySQL 数据库以获取记录。该记录存在于数据库中并包含数据,但程序返回空值。被查询的表标题为 Market。在该表中,有一列标题为 ma​​rket_cap 和一列标题为 volume。当我使用 MySQLWorkbench 查询我的数据库时,结果显示列中有数据。然而,程序接收到空值。

附上两张图片(链接,因为我需要获得 10 个声望点才能在帖子中嵌入图片):

  1. > MySql database column image
    显示我的数据库中有问题的列的 View 。 从图中可以看出,我需要的数据存在于我的数据库中。
  2. Code with results from Pycharm debugger
    在运行调试器之前,我在 where 行之后设置了一个断点 该代码在数据库中查询对象。图二显示了输出 I 代码查询数据库时收到。

    1. Screenshot of the Market Model

    2. Screenshot of the solution我发现在将其添加到字典(price_map)之前转换市值(market_cap)会返回正确的值。你可以在第138行看到它。

什么会导致记录中的现有数据返回为 null?

import logging
from flask_restful import Resource
from api.resources.util.date_util import pretty_date_to_epoch, 
epoch_to_pretty_date
from common.decorators import log_exception
from db.models import db, Market
log = logging.getLogger(__name__)


def map_date_to_price():
    buy_date_list = ["2015-01-01", "2015-02-01", "2015-03-01"]
    sell_date_list = ["2014-12-19", "2014-01-10", "2015-01-20",
                      "2016-01-10"]
    date_list = buy_date_list + sell_date_list    
    market_list = []
    price_map = {}
    for day in date_list:
        market_list.append(db.session.query(Market).
        filter(Market.pretty_date == day).first())
    for market in market_list:
        price_map[market.pretty_date] = market.market_cap

    return price_map

最佳答案

(显然)被检索为 null 的两个字段都是 db.Numerichttp://docs.sqlalchemy.org/en/latest/core/type_basics.html请注意,默认情况下,这些由 decimal.Decimal 对象支持,我敢打赌它不能转换为 JSON,所以从 Market.__repr__() 返回的内容 会将它们显示为 null

我会尝试将 asdecimal=False 添加到 Market 中的两个 db.Numeric() 调用中。

关于mysql - Flask SQL-Alchemy 查询为我的数据库中存在的数据返回空值。可能是什么原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50995253/

相关文章:

python - 在 python 中从两个字符串创建一个字符串

python - 列表理解过滤 - "the set() trap"

python - 使用 python 比较两个目录中的文件以查找一个目录中的文件而不是另一个目录中的文件 - 与子目录结构无关

python - Bluemix Flask 应用程序不再构建

python - URL Builder TypeError error() 仅接受 1 个参数(给定 0 个)

MySQL JOIN 忽略 NULL 值

mysql - Symfony2 查询构建器选择

mysql按带点的数字排序

php - 选择MySQL表中最早的记录

python - SQLAlchemy:当我更新models.py中的模型时,如何更新数据库中的表