我正在嘗試根據(jù)日期繪制此 json 中的數(shù)據(jù)。如何將數(shù)據(jù)框的“created_at”日期轉(zhuǎn)換為 int?獲取類型錯(cuò)誤:列表索引必須是整數(shù)或切片,而不是 strimport requestsimport pandas as pdimport datetimeimport matplotlib.pyplot as plt%matplotlib inlineurl = 'https://api.oilpriceapi.com/v1/prices/past_week'headers = {'Authorization': 'Token XXXXXXXXXXX','Content-Type': 'application/json'}response = requests.get(url = url, headers = headers)data = response.json()print(data)dates = (data['data']['prices']['created_at'])values = (data['data']['prices']['price'])df = pd.DataFrame({'dates':dates, 'values':values})df['dates'] = [pd.to_datetime(i) for i in df['dates']]plt.line(dates, values)錯(cuò)誤:TypeError Traceback (most recent call last)<ipython-input-9-db4fdff870ee> in <module>() 14 print(data) 15 ---> 16 dates = (data['data']['prices']['created_at']) 17 values = (data['data']['prices']['price']) 18 TypeError: list indices must be integers or slices, not strJSON:{'status': 'success', 'data': {'prices': [{'price': 32.5, 'formatted': '$32.50', 'currency': 'USD', 'code': 'BRENT_CRUDE_USD', 'created_at': '2020-05-27T16:04:00.466Z', 'type': 'spot_price'},......
2 回答

MYYA
TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊
讓我給你一個(gè)輕微的修正。首先你可以得到dates和prices如下
dates = [item['created_at'] for item in data['data']['prices']]
values = [item['price'] for item in data['data']['prices']]
其他應(yīng)該按您的預(yù)期工作。

qq_笑_17
TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊
這是列表中的字典:
data['data']['prices']
>>[{'price': 32.5,'formatted': '$32.50','currency': 'USD','code': 'BRENT_CRUDE_USD','created_at': '2020-05-27T16:04:00.466Z','type': 'spot_price'}]
因此嘗試
data['data']['prices'][0]['created_at']
添加回答
舉報(bào)
0/150
提交
取消