簡體   English   中英

從 API 源(嵌套字典)中提取值

[英]Extract values from API source (nested dictionary)

我試圖只提取數據框中的日期和棉花值。 我對 pd.json_normalize / pd.DataFrame.from_dict 的嘗試沒有奏效......

例子:

 {'data': {'success': True,
  'timeseries': True,
  'start_date': '2021-06-01',
  'end_date': '2022-05-01',
  'base': 'USD',
  'rates': {'2021-09-22': {'USD': 1, 'COTTON': 1.0994505494505},
   '2021-09-23': {'USD': 1, 'COTTON': 1.0876304347826},
   '2021-09-24': {'USD': 1, 'COTTON': 1.0877934782609},
   '2021-09-25': {'USD': 1},
   '2021-09-26': {'USD': 1, 'COTTON': 1.0876304347826},
   '2021-09-27': {'USD': 1, 'COTTON': 1.0874347826087},
...
   '2022-05-01': {'USD': 1, 'COTTON': 0.64516129032258}},
  'unit': 'per lb'}}

預期結果 :

日期 棉花_價格
2021-09-23 1.0876304347826
2021-09-24 1.0877934782609
... ...

創建一個函數來解析您的 api 響應:

def response_to_df(response):
    column = {'date':[], 'cotton':[]}
    for date, rate in dic['data']['rates'].items():
        column['date'].append(date)
        column['cotton'].append(rate['COTTON'])
    return pd.DataFrame(column)
data = [[key, value.get('COTTON')] for key,value in response['data']['rates'].items()]
df = pd.DataFrame(data, columns=['Date', 'Cotton_prices'])

結果:

日期 棉花價格
2021-09-22 1.09945
2021-09-23 1.08763
2021-09-24 1.08779
2021-09-25
2021-09-26 1.08763
2021-09-27 1.08743
2022-05-01 0.645161

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM