如何将复杂的json转换为pandas数据框

时间:2020-03-03 16:13:00

标签: python json pandas

我正在通过其api提取FRED数据,并且返回了复杂的JSON。此数据中包含负债数据。在JSON中,是一个嵌套的“ observations”键,该键内是带有“ date”和“ value”键的字典列表。我需要日期和值作为列标题。日期也可以是索引。

要获取数据,将需要一个免费的api密钥,该密钥在以下位置找到:https://fred.stlouisfed.org/。只需转到我的帐户并按照说明进行操作即可。

有关提取数据的代码,请参见下文。

import pandas as pd
import time
import urllib
import requests
from fred_api import fred_api #config file with my personal api
networth_endoint = r'https://api.stlouisfed.org/fred/series/observations?series_id=BOGZ1FL102090005A&api_key={}&file_type=json'.format(api)

content = requests.get(url = networth_endoint)

data = content.json()
data

如果您不想经历麻烦,下面是返回内容的摘要:

{'realtime_start': '2020-03-03',
 'realtime_end': '2020-03-03',
 'observation_start': '1600-01-01',
 'observation_end': '9999-12-31',
 'units': 'lin',
 'output_type': 1,
 'file_type': 'json',
 'order_by': 'observation_date',
 'sort_order': 'asc',
 'count': 74,
 'offset': 0,
 'limit': 100000,
 'observations': [{'realtime_start': '2020-03-03',
   'realtime_end': '2020-03-03',
   'date': '1945-01-01',
   'value': '215967.0'},
  {'realtime_start': '2020-03-03',
   'realtime_end': '2020-03-03',
   'date': '1946-01-01',
   'value': '232012.0'},
  {'realtime_start': '2020-03-03',
   'realtime_end': '2020-03-03',
   'date': '1947-01-01',
   'value': '269729.0'},
  {'realtime_start': '2020-03-03',
   'realtime_end': '2020-03-03',
   'date': '1948-01-01',
   'value': '294148.0'},
  {'realtime_start': '2020-03-03',
   'realtime_end': '2020-03-03',
   'date': '1949-01-01',
   'value': '304352.0'},
  {'realtime_start': '2020-03-03',
   'realtime_end': '2020-03-03',
   'date': '1950-01-01',
   'value': '328550.0'}...

{'realtime_start': '2020-03-03',
   'realtime_end': '2020-03-03',
   'date': '2017-01-01',
   'value': '15479906.0'},
  {'realtime_start': '2020-03-03',
   'realtime_end': '2020-03-03',
   'date': '2018-01-01',
   'value': '16491618.0'}]}

这是从1945年到最后报告的季度的一个。实际json由...

分解

有人能弄清楚如何从json中提取每个日期和值并使用它制作数据框吗?

0 个答案:

没有答案