【发布时间】:2023-03-14 03:50:02
【问题描述】:
{
"dataset": {
"id": 2288715,
"dataset_code": "ORB",
"database_code": "OPEC",
"name": "OPEC Crude Oil Price",
"description": "Reference Price for the OPEC Crude Oil Basket. Currently includes: Saharan Blend (Algeria), Girassol (Angola), Oriente (Ecuador), Iran Heavy (Islamic Republic of Iran), Basra Light (Iraq), Kuwait Export (Kuwait), Es Sider (Libya), Bonny Light (Nigeria), Qatar Marine (Qatar), Arab Light (Saudi Arabia), Murban (UAE) and Merey (Venezuela).",
"refreshed_at": "2019-12-02T12:25:30.433Z",
"newest_available_date": "2019-11-29",
"oldest_available_date": "2003-01-02",
"column_names": [
"Date",
"Value"
],
"frequency": "daily",
"type": "Time Series",
"premium": false,
"limit": null,
"transform": null,
"column_index": null,
"start_date": "2019-11-26",
"end_date": "2019-11-26",
"data": [
[
"2019-11-26",
63.92
]
],
"collapse": null,
"order": null,
"database_id": 381
}
}
我在下面尝试了这段代码,但它不起作用并且没有在 HTML 上显示详细信息。如何将 json 转换为 python 以在 html 页面上显示数据?
#convert from JSON string to Python Dictionary
oilData = json.loads(response.text)
#TO retrieve the latest data from Meta Data
lastRefreshedDate = oilData["data"]
#To retrieve latest stock price
latestOilPrices = oilData["Date"][lastRefreshedDate]
closingPrice = latestOilPrices["Value"]
return render_template('oil_price.html',tCode=Code,sPrice=closingPrice,dTime=lastRefreshedDate)
编辑:面临错误
Traceback (most recent call last):
File "C:\Program Files\Python38\lib\site-packages\flask\app.py", line 2446, in wsgi_app
response = self.full_dispatch_request()
File "C:\Program Files\Python38\lib\site-packages\flask\app.py", line 1951, in full_dispatch_request
rv = self.handle_user_exception(e)
File "C:\Program Files\Python38\lib\site-packages\flask\app.py", line 1820, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "C:\Program Files\Python38\lib\site-packages\flask\_compat.py", line 39, in reraise
raise value
File "C:\Program Files\Python38\lib\site-packages\flask\app.py", line 1949, in full_dispatch_request
rv = self.dispatch_request()
File "C:\Program Files\Python38\lib\site-packages\flask\app.py", line 1935, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "C:\Users\shirl\Downloads\OBKD_Part2_Group (1)\oBKD part 2\app.py", line 138, in result
latestOilPrices = oilData["data"][lastRefreshedDate]
KeyError: 'data'
127.0.0.1 - - [03/Dec/2019 12:30:48] "POST /result HTTP/1.1" 500 -
【问题讨论】:
-
也许你应该把它发送到模板 -
render_template('oil_price.html', closingPrice) -
您收到错误消息了吗?您是否使用
print()来检查您在 varialbes 中得到了什么?作为我的形式,您对 JSON 没有问题,但对模板没有问题。 -
@furas 我确实将它发送到模板,但得到一个关键错误“数据”。我没有使用 print() 检查 i
-
总是将完整的错误消息(从单词“Traceback”开始)作为文本(不是屏幕截图)放在有问题的(不是评论)中。还有其他有用的信息。
-
并且不要更改有问题的文本/代码。在问题末尾添加前缀
EDIT: