Я работаю над извлечением данных о погоде из NOAA API с помощью SDK. Ниже приведен пример кода:
import requests, json
import pandas as pd
from pandas.io.json import json_normalize
from noaa_sdk import noaa
n = noaa.NOAA()
n.points_forecast(40.7314, -73.8656, hourly=False)
Пример вывода приведен ниже:
{'@context':
['https://raw.githubusercontent.com/geojson/geojson-ld/master/contexts/geojson-base.jsonld',
{'wx': 'https://api.weather.gov/ontology#', 'geo':
'http://www.opengis.net/ont/geosparql#', 'unit':
'http://codes.wmo.int/common/unit/', '@vocab':
'https://api.weather.gov/ontology#'}], 'type': 'Feature',
'geometry': {'type': 'GeometryCollection', 'geometries': [{'type':
'Point', 'coordinates': [-73.8610332, 40.7408918]}, {'type':
'Polygon',
'coordinates': [[[-73.8730892, 40.7534295],
[-73.8775823, 40.7317593],
[-73.8489801, 40.7283524],
[-73.84448110000001, 40.7500224],
[-73.8730892, 40.7534295]]]}]}, 'properties': {'updated': '2020-04-03T09:30:44+00:00', 'units': 'us', 'forecastGenerator':
'BaselineForecastGenerator', 'generatedAt':
'2020-04-03T14:18:55+00:00', 'updateTime':
'2020-04-03T09:30:44+00:00', 'validTimes':
'2020-04-03T03:00:00+00:00/P7DT4H', 'elevation': {'value': 14.9352,
'unitCode': 'unit:m'}, 'periods': [{'number': 1,
'name': 'Today',
'startTime': '2020-04-03T10:00:00-04:00',
'endTime': '2020-04-03T18:00:00-04:00',
'isDaytime': True,
'temperature': 53,
'temperatureUnit': 'F',
'temperatureTrend': 'falling',
'windSpeed': '18 mph',
'windDirection': 'N',
'icon': 'https://api.weather.gov/icons/land/day/rain,50?size=medium',
'shortForecast': 'Chance Light Rain',
'detailedForecast': 'A chance of rain. Cloudy. High near 53, with temperatures falling to around 50 in the afternoon. North wind around
18 mph, with gusts as high as 29 mph. Chance of precipitation is
50%.'}
Мне нужно преобразовать вывод JSON во фрейм данных, чтобы я мог экспортировать его как файл CSV. Как этого добиться?
Мне нужен фрейм данных, чтобы столбцы ниже
'name': 'Today',
'startTime': '2020-04-03T10:00:00-04:00',
'endTime': '2020-04-03T18:00:00-04:00',
'isDaytime': True,
'temperature': 53,
'temperatureUnit': 'F',
'temperatureTrend': 'falling',
'windSpeed': '18 mph',
'windDirection': 'N',
'icon': 'https://api.weather.gov/icons/land/day/rain,50?size=medium',
'shortForecast': 'Chance Light Rain',
'detailedForecast': 'A chance of rain. Cloudy. High near 53, with temperatures falling to around 50 in the afternoon. North wind around
18 mph, with gusts as high as 29 mph. Chance of precipitation is
50%.'