【问题标题】:How to convert Quandl json to Python dictionary?如何将 Quandl json 转换为 Python 字典?
【发布时间】: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:

标签: python json api quandl


【解决方案1】:

这应该修复数据,以便python可以读取:

import re
jdata = re.sub(r'(?:false)','False',jdata) 
jdata = re.sub(r'(?:null)','None',jdata) 
pydict = eval(jdata) 

【讨论】:

    猜你喜欢
    • 2013-02-14
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 2018-05-04
    • 2021-01-17
    相关资源
    最近更新 更多