我在這里遇到了其他類似的問題,但仍然無法確定我的問題。
我從 API 呼叫回傳了這個 JSON 資料:
{
"Open": {
"1638316800000": 120.5400009155,
"1640995200000": 106.1399993896,
"1643673600000": 67.2799987793,
"1646092800000": 65.4300003052,
"1648771200000": 50.1800003052,
"1651104000000": 31.5699996948
},
"High": {
"1638316800000": 126.75,
"1640995200000": 106.8000030518,
"1643673600000": 71.5,
"1646092800000": 66.5400009155,
"1648771200000": 50.2599983215,
"1651104000000": 31.6900005341
},
"Low": {
"1638316800000": 88.4000015259,
"1640995200000": 50.0,
"1643673600000": 53.5,
"1646092800000": 33.4599990845,
"1648771200000": 30.5799999237,
"1651104000000": 30.5209999084
},
"Close": {
"1638316800000": 103.6900024414,
"1640995200000": 65.7399978638,
"1643673600000": 67.5599975586,
"1646092800000": 50.2400016785,
"1648771200000": 31.2199993134,
"1651104000000": 30.6100006104
}
}
我要做的就是將“關閉”資料分配給一個新變數 close 并回傳 close 而不是整個字典回應。
這是我目前正在嘗試的,我嘗試了不同的變體,并且都不斷回傳“字串索引必須是整數”
@app.route("/history")
def display_history():
symbol = request.args.get('symbol', default="AAPL")
period = request.args.get('period', default="1y")
interval = request.args.get('interval', default="1mo")
quote = yf.Ticker(symbol)
hist = quote.history(period=period, interval=interval)
data = hist.to_json()
close = data["Close"]
return close
uj5u.com熱心網友回復:
正如您的解釋器告訴您的那樣,您正在嘗試使用datajson 格式的字串。
為了將其作為帶有“關閉”鍵的字典讀取,您可以使用 package.json 中的loads函式json。它將字串反序列化為 Python 字典:
data = hist.to_json()
data = json.loads(data)
close = data["Close"]
此外,似乎Ticker.history()從yfinance模塊回傳了一個熊貓資料框。如果是這種情況,您可以改用它:
data = hist.to_dict()
close = data['Close']
這樣,資料不會轉換為 Json,然后再次回傳 Python 字典,而是直接轉換為字典。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/467330.html
