繁体   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