##翻訳者| Bugatti
レビュアー| Sun Shujuan
このチュートリアルでは Python の使用方法を紹介しますOpenWeatherMap API から時系列データを取得し、それを Pandas DataFrame に変換します。次に、InfluxDB Python クライアントを使用して、このデータを時系列データ プラットフォーム InfluxDB に書き込みます。 これが InfluxDB にデータを書き込む最も簡単な方法であるため、API 呼び出しからの JSON 応答を Pandas DataFrame に変換します。 InfluxDB は専用データベースであるため、InfluxDB への書き込みは時系列データの取り込みに関する高い要件を満たすように設計されています。 要件このチュートリアルは、Homebrew 経由で Python 3 がインストールされている macOS システムで完了します。 Python とクライアントのインストールを簡素化するために、virtualenv、pyenv、conda-env などの追加ツールをインストールすることをお勧めします。完全な要件はここにあります:txt influxdb-client=1.30.0 pandas=1.4.3 requests>=2.27.1
# Get time series data from OpenWeatherMap API params = {'lat':openWeatherMap_lat, 'lon':openWeatherMap_lon, 'exclude': "minutely,daily", 'appid':openWeatherMap_token} r = requests.get(openWeather_url, params = params).json() hourly = r['hourly']
python # Convert data to Pandas DataFrame and convert timestamp to datetime object df = pd.json_normalize(hourly) df = df.drop(columns=['weather', 'pop']) df['dt'] = pd.to_datetime(df['dt'], unit='s') print(df.head)
on # Write data to InfluxDB with InfluxDBClient(url=url, token=token, org=org) as client: df = df client.write_api(write_options=SYNCHRONOUS).write(bucket=bucket,record=df, data_frame_measurement_name="weather", data_frame_timestamp_column="dt")
python import requests import influxdb_client import pandas as pd from influxdb_client import InfluxDBClient from influxdb_client.client.write_api import SYNCHRONOUS bucket = "OpenWeather" org = "" # or email you used to create your Free Tier InfluxDB Cloud account token = " url = "" # for example, https://us-west-2-1.aws.cloud2.influxdata.com/ openWeatherMap_token = "" openWeatherMap_lat = "33.44" openWeatherMap_lon = "-94.04" openWeather_url = "https://api.openweathermap.org/data/2.5/onecall" # Get time series data from OpenWeatherMap API params = {'lat':openWeatherMap_lat, 'lon':openWeatherMap_lon, 'exclude': "minutely,daily", 'appid':openWeatherMap_token} r = requests.get(openWeather_url, params = params).json() hourly = r['hourly'] # Convert data to Pandas DataFrame and convert timestamp to datetime object df = pd.json_normalize(hourly) df = df.drop(columns=['weather', 'pop']) df['dt'] = pd.to_datetime(df['dt'], unit='s') print(df.head) # Write data to InfluxDB with InfluxDBClient(url=url, token=token, org=org) as client: df = df client.write_api(write_options=SYNCHRONOUS).write(bucket=bucket,record=df, data_frame_measurement_name="weather", data_frame_timestamp_column="dt")
図 2. スクリプト エディターに移動し、aggregateWindow() 関数のコメントを解除するか削除して生の気象データを表示します
この記事が InfluxDB を最大限に活用するのに役立つことを願っていますPython クライアント ライブラリ。時系列データを取得し、InfluxDB に保存します。 Python クライアント ライブラリを使用して InfluxDB からデータをクエリする方法について詳しく知りたい場合は、この記事 (https://thenewstack.io/getting-started-with-python-and-influxdb/) を参照することをお勧めします。 Flux を使用して OpenWeatherMap API からデータを取得し、それを InfluxDB に保存できることにも言及する価値があります。 InfluxDB Cloud を使用する場合、Flux スクリプトがホストされて定期的に実行されるため、インスタンスに供給される気象データの信頼できるストリームを取得できます。 Flux を使用してユーザー定義のスケジュールに従って気象データを取得する方法の詳細については、この記事 (https://www.influxdata.com/blog/tldr-influxdb-tech-tips-handling-json-objects-) を参照してください。マッピング-arrays/?utm_source=vendor&utm_medium=referral&utm_campaign=2022-07_spnsr-ctn_obtaining-storing-ts-pything_tns)。
以上がPython を使用して時系列データを取得して保存するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。