gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 21:42:21 25 4
gpt4 key购买 nike

我的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com