使用 python 从 urllib 的 Json 响应中获取数据

Get data from Json response from urllib using python

我正在使用以下 Python 代码从 API 调用中获取数据。

import urllib.request
import json

response = urllib.request.urlopen(req)
string = response.read().decode('utf-8')
json_obj = json.loads(string)
print(json_obj) 

结果集如下:

{"forecast": [645.946539419183], "index": [{"Date": 1629072000000, "ProductType": "Type1"}]}

我怎样才能 return 预测值?

645.946539419183

我尝试了很多方法来获取值,但似乎没有任何效果

print(json_obj['forecast'][0]) 

抛出以下错误:

TypeError                                 Traceback (most recent call last)
<ipython-input-44-af91dd9fcc96> in <module>
     37     json_obj = json.loads(string)
     38 
---> 39     print(json_obj['forecast'][0])
     40 
     41 except urllib.error.HTTPError as error:

TypeError: string indices must be integers
json_obj = json.loads(json.loads(string))
json_obj["forecast"][0]

需要第二次索引,因为您查找的值在列表中。

这行得通,但我想强调的是,提供字符串的服务中可能存在错误,因为它编码了两倍的数据...

json_obj = {"forecast": [645.946539419183], "index": [{"Date": 1629072000000, "ProductType": "Type1"}]}
print(json_obj['forecast'][0])

上面的代码有效。

你可以这样做。

forecast = json_obj['forecast']