4个版本
0.0.4 | 2022年12月31日 |
---|---|
0.0.3 | 2022年12月31日 |
0.0.2 | 2022年12月31日 |
0.0.1 | 2022年12月31日 |
#882 在 科学
340KB
756 行
healthkit-to-sqlite
将Apple HealthKit数据转换为SQLite数据库的命令行工具。
入门指南
- 在您的iOS设备上打开Health应用程序。
- 点击右上角的个人资料图标。
- 点击“导出所有健康数据”按钮。
- 将生成的ZIP存档共享到您的计算机。
- 在导出的ZIP存档上运行healthkit-to-sqlite工具。
cargo install healthkit-to-sqlite-cli
healthkit-to-sqlite export.zip sqlite://healthkit.db
Datasette
您可以使用https://datasette.io/来查看和探索生成的SQLite数据库文件。安装https://datasette.io/plugins/datasette-geojson-map插件,以便在地图上可视化锻炼路线数据。
datasette install datasette-geojson-map
datasette healthkit.db
决策
- 目前只导出
Record
、Workout
和ActivitySummary
元素。 Record
元素插入到与元素type
属性值匹配的表中。Workout
元素插入到名为“Workout”的表中。- 子元素
workoutEvent
和workoutStatistics
表示为JSON列。 - 子元素
workoutRoute
被转换为GeoJSON LineString,并存储在名为“geometry”的JSON列中,以便轻松集成https://datasette.io/plugins/datasette-geojson-map。 - JSON列可能很冗长,导致HTML表格单元格尺寸很大,难以浏览。在这种情况下,指定
truncate_cells_html
设置可能很有用:datasette healthkit.db --setting truncate_cells_html 40
。请注意,此设置似乎与datasette-pretty-json插件不兼容。
- 子元素
ActivitySummary
元素作为行插入到名为“ActivitySummary”的表中。- 为了防止苹果添加、删除或更改元素属性,代码只假设存在有限数量的属性
Record
元素必须有一个type
属性。Workout
元素必须有一个workoutActivity
属性。MetadataEntry
元素必须具有key
和value
属性。FileReference
元素必须有一个path
属性。
依赖关系
~41-55MB
~1M SLoC