Pythonでarrowとdataclasses-jsonを用いて現在の日時を取得しJSON形式に変換する

スポンサーリンク

Pythonでarrowとdataclasses-jsonを用いて現在の日時を取得しJSON形式に変換してみます。

今回はarrowdataclasses-jsonを用います。このライブラリ・モジュールはPythonの標準ライブラリではありませんので、事前にインストールする必要があります。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows11)

■arrowとdataclasses-jsonを用いて現在の日時を取得しJSON形式に変換する

では、早速arrowとdataclasses-jsonを用いて現在の日時を取得しJSON形式に変換(シリアライズ)するスクリプトを書いていきます。

■コード

import arrow
from dataclasses import dataclass
from dataclasses_json import dataclass_json

@dataclass_json
@dataclass
class MyData:
    timestamp: str

# 現在の日時を取得し、MyDataオブジェクトを作成する
current_time = arrow.now()
my_data = MyData(timestamp=current_time.format())

# MyDataオブジェクトをJSON形式にシリアライズする
json_data = my_data.to_json()
print(json_data)

まずは必要なモジュールのインポートします。今回は日付と時刻の操作に便利な関数とクラスを提供するarrowモジュール。そしてデータクラスの定義に使用されるdataclassesモジュール(Python標準ライブラリ)。最後にデータクラスをJSON形式にシリアライズおよびデシリアライズするための機能を提供するdataclasses_jsonモジュールをインポート。

次にMyDataクラスを定義します。@dataclass_jsonデコレータを使用して、MyDataクラスをJSONシリアライズ可能なデータクラスとしてマークします。また、@dataclassデコレータを使用して、データクラスの定義を行います。MyDataクラスには、timestampという1つの属性があります。

次に現在の日時の取得とMyDataオブジェクトの作成。arrow.now()関数を使用して、現在の日時を取得します。この日時は、Arrowオブジェクトとして表現されます。そして、この日時をMyDataオブジェクトのtimestamp属性に設定しています。arrow.now().format()は、現在の日時を指定された書式で文字列として取得するために使用されています。

その後、MyDataオブジェクトのJSONシリアライズ(変換)。my_data.to_json()を使用して、MyDataオブジェクトをJSON形式にシリアライズします。to_json()メソッドは、dataclasses_jsonモジュールによって提供されるものであり、MyDataオブジェクトをJSON文字列に変換します。

最後にJSONデータの表示。JSONシリアライズ(変換)されたデータをjson_data変数に格納し、print(json_data)を使用してそれを表示します。

■検証・実行

今回書いたスクリプトを「t_data.py」という名前でPythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

実行してみるとarrowとdataclasses-jsonを用いて現在の日時を取得しJSON形式に変換し、変換されたJSON形式を表示させることができました。

コメント

タイトルとURLをコピーしました