iPhoneのヘルスケアアプリで歩数を自動記録しているので、そのデータをパソコンで分析(1日の平均歩数の変化など)したいと思い、パソコンへ移動させることにしました。
ヘルスケアアプリからデータをエクスポートするには、
ヘルスケアアプリを起動し、右上の人物マークをタップし、一番下の「すべてのヘルスケアデータを書き出す」からできます。
1分くらい時間がかかりますが、データが書き出されるので、任意の場所に保存します。
自分の場合はAirDropでMacに移動させました。
データは以下の2つ
- export.xml
- export_cda.xml
がありますが、export.xmlを利用します。
このファイルを起動するとデータが入っているのですが、非常に膨大なxmlファイルです。
このファイルを見やすくするPythonファイルとして、applehealthdata.pyがあります。
そのファイルは、以下のページの緑のCodeボタンからzip形式でダウンロードできます。
ダウンロードページ GitHub – tdda/applehealthdata: Extract Data from Apple Health App’s XML Export
ダウンロードしたら解凍し、
- applehealthdata.py
- export.xml
この2つのファイルを同じ階層に入れます。
そしてターミナルを起動し、applehealthdata.pyがある階層へ行き、こちらのコマンド
python3 applehealthdata.py export.xml
を実行すると、各データごとにcsvファイルを書き出してくれる、はずでした。
ところが、ファイルを実行すると、以下のようなエラーメッセージが出ました。
‘xml.etree.ElementTree.Element’について調べてみたところ、
Python 3.9から、xml.etree.ElementTree.Element.getchildren()はなくなり、list(elem)に置き換わったようです。
参考 ⚓ T213814 xml.etree.ElementTree.Element.getchildren() has been removed in Python 3.9 –
そこで、エラーが出た部分のコード
self.nodes = self.root.getchildren()
これを、以下のように修正すると、うまく動きました。
self.nodes = list(self.root)
自分の場合は、
- ActiveEnergyBurned.csv
- BodyMass.csv
- DistanceWalkingRunning.csv
- FlightsClibbed.csv
- HeartRate.csv
- SleepAnalysis.csv
- StepCount.csv
が出力されました。人によって出力されるデータは異なるかと思います。
今回は歩数計のデータを見たかったので、StepCount.csvを見れば良いですね。
コメント