我的python程序是用来查询mysql数据库中的记录的。该记录存在于数据库中,包含数据,但程序返回空值。被查询的表名为market。在该表中,有一列标题为“市值”和一列标题为“成交量”。使用mysqlworkbench查询数据库时,结果显示列中有数据。但是,程序接收空值。
附件是两张图片(链接,因为我需要赢得10个信誉点嵌入图片在一个职位):
mysql数据库列映像
显示数据库中有问题的列的视图。从图像中,您可以看到我需要的数据存在于我的数据库中。
带有pycharm调试器结果的代码
在运行调试器之前,我在代码向数据库查询对象的行后面设置了一个断点。图2显示了代码查询数据库时收到的输出。
市场模式截图
我发现在将市值(market\u cap)添加到字典(price\u map)之前转换市值(market\u 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
1条答案
按热度按时间d8tt03nd1#
被检索为null的两个字段都是空的
db.Numeric
. http://docs.sqlalchemy.org/en/latest/core/type_basics.html 请注意,默认情况下,这些都由decimal.Decimal
对象,我敢打赌它不能转换为json,那么返回的形式是什么呢Market.__repr__()
将显示为null
.我会尝试添加
asdecimal=False
对这两个db.Numeric()
来电Market
.