【发布时间】:2021-12-04 03:24:34
【问题描述】:
我有这段代码,无论我是return jsonify(quote) 还是return quote,它仍然在Javascript 前端作为转义字符串结束。 json.dumps() 似乎也没有做任何事情。我是一名 js 开发人员……不知道为什么 Python 会涉及这么简单的事情。解决办法是什么?
@app.route('/dev/api/stock/price/<symbol>', methods=['GET'])
@cross_origin(origin='*')
def get_stock_price(symbol):
quote = si.get_quote_table(symbol)
quote['price'] = si.get_live_price(symbol)
print(quote)
return quote
报价的打印输出是
{'1y Target Est': 700.3, '52 Week Range': '379.11 - 900.40', 'Ask': '849.30 x 900', 'Avg. Volume': 18457193.0, 'Beta (5Y Monthly)': 1.89, 'Bid': '849.00 x 800', "Day's Range": '822.35 - 843.21', 'EPS (TTM)': 1.9, 'Earnings Date': 'Oct 20, 2021', 'Ex-Dividend Date': nan, 'Forward Dividend & Yield': 'N/A (N/A)', 'Market Cap': '844.522B', 'Open': 823.74, 'PE Ratio (TTM)': 444.4, 'Previous Close': 818.32, 'Quote Price': 843.030029296875, 'Volume': 18924617.0, 'price': 843.030029296875}
在客户端是这样接收的
data: "{\"1y Target Est\": 700.3, \"52 Week Range\": \"379.11 - 900.40\", \"Ask\": \"849.30 x 900\", \"Avg. Volume\": 18457193.0, \"Beta (5Y Monthly)\": 1.89, \"Bid\": \"849.00 x 800\", \"Day's Range\": \"822.35 - 843.21\", \"EPS (TTM)\": 1.9, \"Earnings Date\": \"Oct 20, 2021\", \"Ex-Dividend Date\": NaN, \"Forward Dividend & Yield\": \"N/A (N/A)\", \"Market Cap\": \"844.522B\", \"Open\": 823.74, \"PE Ratio (TTM)\": 444.4, \"Previous Close\": 818.32, \"Quote Price\": 843.030029296875, \"Volume\": 18924617.0, \"price\": 843.030029296875}"
【问题讨论】:
-
这看起来像是数据表示的问题。如何在客户端打印?
-
暂时忘记客户端。浏览器输出是什么样的?那么卷曲呢?
-
另外,不清楚
si.get_quote_table()实际返回的内容。这是字典还是其他类?打印或返回并没有告诉我们这个......如果你真的是一个 JS 开发者,那么也许切换到 Express 或 NextJS? -
@OneCricketeer 我会回来更新输出...但是想到在 JS 中执行此操作...这是我正在构建的量化金融应用程序...本质上是衍生品自动化平台,因此后端必须使用 Python。 JS 没有对应用例的包。
-
如果没有一些不起眼的 NPM 模块来进行财务计算,我会感到惊讶。当然,JS 没有 Pandas,但这并不意味着它不能做其他所有事情。
finance.js可以自行查找股票代码并返回 JS 对象